69,368
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
int main(void)
{
int a = 5;
int *p = &a;
int **q = &p;
printf("*p = %d, **q = %d\n", *p, **q);
printf("&a = %p, p = %p, &p = %p, q = %p\n", &a, p, &p, q);
return 0;
}
以上是用于验证自己想法的一个小程序,可以运行验证一下;
p和&p是不相等的。
首先,每个变量在内存中都有自己的存储空间,指针变量也是,只是存储的数据类型不一样,有的存储的是数据值,有的存储的就是地址值;
比如p 指向了变量a,那么指针变量里存储地址,就是a的内存地址;&p是指p变量本身的地址,即指针变量p在内存中的地址。