为什么int指针“ ++”增加4而不是1?

指针的值是变量的地址。为什么int pointer将int指针增加1后,值又增加了4个字节。


我认为,指针(变量地址)的值在指针增加后仅增加1个字节。


测试代码:


int a = 1, *ptr;

ptr = &a;

printf("0x%X\n", ptr);

ptr++;

printf("0x%X\n", ptr);

预期产量:


0xBF8D63B8

0xBF8D63B9

实际输出:


0xBF8D63B8

0xBF8D63BC

编辑:


另一个问题-如何访问一个int占用一个字节的4个字节?


胡说叔叔
浏览 1960回答 3
3回答

ibeautiful

指针增量基于所指向类型的大小。如果int是4个字节,则将int *递增1将使其值增加4。如果short是2个字节,则将short *加1将使其值增加2。这是C指针算术的标准行为。
打开App,查看更多内容
随时随地看视频慕课网APP