C语言中指向指针的指针是什么意思

 我来答
禹司空
2018-03-30 · TA获得超过2454个赞
知道小有建树答主
回答量:25
采纳率:100%
帮助的人:3761
展开全部

指针其实也是个变量(只要是变量就一定有相应的内存空间) 只是这个变量比较的特殊

它只能存放别的变量的地址 变量时在内存中是有地址的

你要明确两概念:变量值和变量地址 

变量值:是变量本身的内容

变量地址:是该变量在内存中的位置编号

通俗来讲就是说这个变量fp只能接受一个指针变量的地址所以你看第8行在p前面加了一个’&‘取地址符号 也就是说把p这个变量的地址给了fp了fp的内容就是p的地址

1.接下来9行输出了a的值这个直接通过变量名a就能找到该变量的地址并且直接输出了a的值1

2.第10行你会发现输出列表参数里面是*p是什么意思?其中的“*”在这里表示指针运算符, 就是说以p的内容为地址找到该地址里面的值   p里面不是村的a变量的地址吗不是吗?  你看第7行是不是在a变量前面加了“&”取地址运算符了 所以*p就是1

3.第11行**fp  这里出现了2个‘*’号 别急 由于指针运算符的结合方向为“自右至左”所以*fp先运算那么*fp是什么就是一fp的内容为地址找到的变量的值是什么 fp里面存放着p的地址  显然此时*fp最终变成了p这个变量的地址了

4.*(p变量的地址) 到了这一步就是说以p的内容为地址找到对应的变量了 显然是a这个变量了

第11就是你说的指向指针的指针了。

_277282419
推荐于2017-12-16 · TA获得超过631个赞
知道小有建树答主
回答量:227
采纳率:100%
帮助的人:127万
展开全部
#include<stdio.h>
int main(void){
int a;
int* p;
int** fp;
a = 1;
p = &a;
fp = &p;
printf("%d\n", a);
printf("%d\n", *p);
printf("%d\n", **fp);
return 0;
}

看图说话把(可以把图片另存为桌面再打开会清晰点) 上面的程序输出的结果都是1

指针其实也是个变量(只要是变量就一定有相应的内存空间) 只是这个变量比较的特殊

它只能存放别的变量的地址 变量时在内存中是有地址的

你要明确两概念:变量值和变量地址 

    变量值:是变量本身的内容

    变量地址:是该变量在内存中的位置编号

程序中的第5行就是声明了一个指向指针变量的变量,什么意思?

通俗来讲就是说这个变量fp只能接受一个指针变量的地址所以你看第8行在p前面加了一个’&‘取地址符号 也就是说把p这个变量的地址给了fp了fp的内容就是p的地址

  1. 接下来9行输出了a的值这个直接通过变量名a就能找到该变量的地址并且直接输出了a的值1

  2. 第10行你会发现输出列表参数里面是*p是什么意思?其中的“*”在这里表示指针运算符, 就是说以p的内容为地址找到该地址里面的值   p里面不是村的a变量的地址吗不是吗?  你看第7行是不是在a变量前面加了“&”取地址运算符了 所以*p就是1

  3. 第11行**fp  这里出现了2个‘*’号 别急 由于指针运算符的结合方向为“自右至左”所以*fp先运算那么*fp是什么就是一fp的内容为地址找到的变量的值是什么 fp里面存放着p的地址  显然此时*fp最终变成了p这个变量的地址了

  4. *(p变量的地址) 到了这一步就是说以p的内容为地址找到对应的变量了 显然是a这个变量了

你慢慢理解吧。说的有点繁琐了

第11就是你说的指向指针的指针了。 

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
霸的霸气
2016-11-24 · 超过21用户采纳过TA的回答
知道答主
回答量:37
采纳率:0%
帮助的人:24.1万
展开全部
二级指针就是指向指针的指针

char *p1 = "123456";
char **p2 = &p1;
printf("%s\n", *p2);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
秒懂百科
2020-12-30 · TA获得超过5.9万个赞
知道大有可为答主
回答量:25.3万
采纳率:88%
帮助的人:1.2亿
展开全部

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式