const int i = 5;
int *j = (int *)&i;
*j = 1;
printf("%d,%d\n", i, *j);
cout << "i address:" << &i << endl;
cout << "j address:" << j << endl; int flg[i];//正确
i和j的地址一样,但是在c++中,编译期间就把i做符号替换,换成了数字5,所以i和j地址一样,但是打印的值不一样,同时数组长度可以用const 常量
如果是c语言,则i和j的值一样都是1,数组flg定义错误