指针的地址相关
对一个指针求地址,得到的是什么?要如何理解下面这段代码 前两行和后两行输出的地址的差异?
#include <stdio.h>
int main()
{
int num=5;
int *p;
p=#
int **pp;
pp=&p;
printf("pp=%p\n",pp);
printf("&p=%p\n",&p);
printf("p=%p\n",p);
printf("p=%p\n",*pp);
return 0;
} p指向的是整形变量,p存储的内容是整形变量num内存中的地址
pp指向的是指针,pp存储的内容是p指针在内存中的地址
printf("pp=%p\n",pp);\\输出的是pp指针在内存中存储的地址
printf("&p=%p\n",&p); \\输出的是p指针在内存中存储的地址
printf("p=%p\n",p); \\输出的是p指针指向位置的内存中的地址,即num的地址
printf("p=%p\n",*pp); \\输出的是pp指针指向位置的内存中的地址,即p的地址 赞一个 PP/&p
p的地址 → P/&num/*pp
num地址 → num/*p
5
这样吧 lumber2388779 发表于 2017-2-23 15:25
p指向的是整形变量,p存储的内容是整形变量num内存中的地址
pp指向的是指针,pp存储的内容是p指针在内存中的 ...
谢谢 0mrli0 发表于 2017-2-23 15:47
PP/&p
p的地址 → P/&num/*pp
num地址 → num/*p
很棒 谢谢 有点复杂啊,指针这一款感觉一直是盲点
页:
[1]