C语言 为什么

来源:百度知道 编辑:UC知道 时间:2024/05/22 16:52:44
main()
{
int a=8;
int *p;
p=&a;
printf("a=%d,*&a=%d\n",a,*&a);
printf("*p=%d,*&*P=%d\n",*p,*&*p);
}
结果是什么?为什么?

输出结果如下:
a=8,*&a=8
*p=8,*&*P=8

结果为:
a=8,*&a=8
*p=8,*&*P=8

原因:
a:就是a的值
*&a:就是指&a这个地址内存放的值,当然还是a
*p:由于p指向a的地址,所以*p的内容就是a
*&*p:*p就是a,所以&*p也就是&a,*&a就是指&a这个地址内存放的值,当然还是a