指针的值是变量的地址。为什么int pointer将int指针增加1后,值又增加了4个字节。我认为,指针(变量地址)的值在指针增加后仅增加1个字节。测试代码:int a = 1, *ptr;ptr = &a;printf("0x%X\n", ptr);ptr++;printf("0x%X\n", ptr);预期产量:0xBF8D63B80xBF8D63B9实际输出:0xBF8D63B80xBF8D63BC编辑:另一个问题-如何访问一个int占用一个字节的4个字节?
3 回答
ibeautiful
TA贡献1993条经验 获得超5个赞
指针增量基于所指向类型的大小。如果int是4个字节,则将int *递增1将使其值增加4。
如果short是2个字节,则将short *加1将使其值增加2。
这是C指针算术的标准行为。
- 3 回答
- 0 关注
- 1959 浏览
添加回答
举报
0/150
提交
取消