首页 > 解决方案 > C指针不显示到相同的地址?*pa=a; 帕=&a; 帕!= &帕

问题描述

为什么它不是相同的内存地址?这是在 C 中。

  int *pa;    
  int a = 80;
  pa = &a; //save memory address from a to pa
  *pa = 1000; //assign value to that address; *pa and a have now the same value

%p... memory address
%d... decimal

  printf ("a: %d \n", a); //100    
  printf ("*pa: %d \n", *pa); //100
  printf ("pa: %p \n", pa);   //0x7ffcd1370c54
  printf ("&a: %p \n", &a);   //0x7ffcd1370c54
  printf ("&pa: %p \n", &pa); //0x7ffcd1370c60

&pa 总是比 pa 多“6”。

pa, &pa, &a 不应该有相同的地址吗?

标签: cpointers

解决方案


&pa实际上是pa的地址, pa是pa的值,因此是a的地址

它们是不同的。


推荐阅读