请帮助我理解以下代码按其方式工作的原因:
#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?