关于c语言指针的一个奇怪现象,该怎么解决
关于c语言指针的一个奇怪现象
代码:
int * p=(int *)0x0022ff44;
*p=123;
printf("%p\n",p);
printf("%d\n",*((int *)(0x0022ff44)));
运行结果:
000000007B
123
疑问:
预计p是0x0022ff44,为什么p的值是000000007B,代码只是修改的p指向的内存的值
(注:环境是win7+dev_cpp,编译器每次分配给变量的内存地址都一样,所以代码中的地址能合法的被访问)
本人初学c语言,望各位大神解释疑惑
------解决方案--------------------
指针本身地址和它指向的地址不要混淆
------解决方案--------------------
代码:
int * p=(int *)0x0022ff44;
*p=123;
printf("%p\n",p);
printf("%d\n",*((int *)(0x0022ff44)));
运行结果:
000000007B
123
疑问:
预计p是0x0022ff44,为什么p的值是000000007B,代码只是修改的p指向的内存的值
(注:环境是win7+dev_cpp,编译器每次分配给变量的内存地址都一样,所以代码中的地址能合法的被访问)
本人初学c语言,望各位大神解释疑惑
------解决方案--------------------
指针本身地址和它指向的地址不要混淆
------解决方案--------------------