#include<stdio.h>
main()
{
long i;
long *p;
printf("输入:\n");
scanf("%ld",&i);
p=&i;
printf("%ld\n",&*p);
printf("%ld\n",&i);
}
1245052是i的地址,也是p的地址。这个p是i的直接引用,&*p就是取地址。
不知道你这个问题是否已经解决, 如果还没有解决的话:就是i被赋值98后,它的内存地址1245052是怎么来的
输出的是变量i的地址。
&*p:*p是i的值,&*p就是i的地址
&i这个就也是取i的地址。
所以两次输出都是输出的是变量i的地址。