我想了解的是为什么指针指向常量的地址,输出值时,地址是常量的地址,结果却不一样,我知道常量不能修改,但是为什么会有这种情况?谢谢大家。 #include<stdio.h>
main()
{
const int il=80;
int *pi;
pi= (int *) &il;
* pi=20;
printf("%d+pi\n",*pi);
//pi所指向地址上的值
printf("%s+pi\n",pi);
//pi指针所指向地址
printf("%d+il\n",il);
//il的值
printf("%s+il\n",&il);
//il的地址
getchar();
}
1 回答
anet
TA贡献79条经验 获得超19个赞
所谓的常量不能修改,是指c语言的语法层面,实际上程序在内存中的数据都可以被修改,外挂就是这么干的。常量限定,仅仅存在于编译阶段检测,通过指针修改常量,属于未定义行为,成功与否,取决于你使用的编译器。
- 1 回答
- 0 关注
- 1128 浏览
添加回答
举报
0/150
提交
取消