输入98,那个结果1245052是怎么来的

#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的地址。