【发布时间】:2012-02-21 03:46:13
【问题描述】:
变量i 被声明为 const 但我仍然可以使用指向它的内存位置的指针来更改值。怎么可能?
int main()
{
const int i = 11;
int *ip = &i;
*ip=100;
printf("%d\n",*ip);
printf("%d\n",i);
}
当我编译时,我得到这个警告:
test.c: In function ‘main’:
test.c:11: warning: initialization discards qualifiers from pointer target type
输出是这个
100
100
【问题讨论】:
-
您正在丢弃 const 限定符,如果您希望警告成为错误,请查阅您的编译器文档。