根据图片:
_ 已知地址 整数6的地址是 0x16b16b31c
尝试通过地址 0x16b16b31c 获取该值(6),但是各种方法都不对 请问是哪里错了 我的思路是不是不对 或者我对这个的理解是否有问题。_
根据图片:
_ 已知地址 整数6的地址是 0x16b16b31c
尝试通过地址 0x16b16b31c 获取该值(6),但是各种方法都不对 请问是哪里错了 我的思路是不是不对 或者我对这个的理解是否有问题。_
望采纳,点击右侧采纳即可:
你的代码不对的地方在于,地址0x16b16b31c是运行代码时动态分配的,并不能预先确定。而且代码中p的地址赋值为0x16b16b31c是不合法的,因为不能直接操作内存地址,可能导致程序崩溃。改为正确的代码应该是这样的:
int i=6;
printf("&i=%p\n", &i);
int *p=&i;
printf("p=%p, *p=%d\n", p, *p);
*p=11;
printf("p=%p, *p=%d\n", p, *p);
执行结果:
&i=0x地址
p=0x地址, *p=6
p=0x地址, *p=11