The output of the following program is 50 on gcc.
How is it possible as x is constant variable and *p is x itself as p is a constant pointer pointing to value at x.
Where as turbo c gives compiler error.
Is it an undefined behaviour? please explain.
#include<stdio.h>
int main()
{
const int x = 25;
int * const p = &x;
*p = 2 * x;
printf("%d", x);
return 0;
}
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…