请帮助我理解以下代码按其方式工作的原因:
#include <stdio.h>
int main(){
int a = 10;
void *b = &a;
int *p = b;
printf("%u",*p++);
return 0;
}
我知道 printf 的输出将是 10,但我不太明白为什么 *p++ 是 10
这是我的步骤:
1)void *b = &a;
将 a 的地址存储在指针 b 中
2) int *p = b;
指针 p 现在指向与指针 b 相同的数据项
3)printf("%u",*p++);
是我感到困惑的地方......指针p的取消引用是a,即10......*p++
与10 + 1基本不同,即11?