指针的值是变量的地址.为什么int pointerint指针增加1后增加4个字节的值.
在我看来,我认为指针(变量的地址)的值仅在指针递增后增加1个字节.
测试代码:
int a = 1, *ptr;
ptr = &a;
printf("0x%X\n", ptr);
ptr++;
printf("0x%X\n", ptr);
Run Code Online (Sandbox Code Playgroud)
预期产量:
0xBF8D63B8
0xBF8D63B9
Run Code Online (Sandbox Code Playgroud)
实际输出:
0xBF8D63B8
0xBF8D63BC
Run Code Online (Sandbox Code Playgroud)
编辑:
另一个问题 - 如何访问4个字节并int逐个占用?
许多来源,包括微软,都将int和long类型都引用为4个字节,并且范围为(带符号)-2,147,483,648到2,147,483,647.如果实际上没有提供更大范围的值,那么拥有长基本类型有什么意义呢?