int main(void){
//定义指针变量存储变量地址
int a= 10;
int* p:
p= &a;
printf(*%p\n", &a);
printf("%p\n", &p):
return 0;
}
运行结果如下图
问1:为什么两次输出地址结果一样,此题中,我觉得应该是(”%d“,p)等于(“%p”,&a) ,,但结果是他们地址也相等,这是为什么呢
我的思考:本例处于32位Windows环境。
指针p的数值是变量a的地址,但指针变量p自身也有一个紧跟在a地址后的地址。它们各占4字节。
所以,指针的值,指针的地址,是两个东西。我觉得应该是(”%d“,p)等于(“%p”,&a)