valor da variável const é alterado usando um ponteiro
A saída do programa a seguir é 50 no gcc. Como é possível, pois x é variável constante e * p é x como p é um ponteiro constante apontando para valor em x. Onde o turbo c fornece erro do compilador. É um comportamento indefinido? Por favor explique.
#include<stdio.h>
int main()
{
const int x = 25;
int * const p = &x;
*p = 2 * x;
printf("%d", x);
return 0;
}