c语言,如果定义char * *P,那么*P和P分别代表什么意思呢?

 我来答
zhccsd
2013-02-18 · TA获得超过4042个赞
知道大有可为答主
回答量:1347
采纳率:66%
帮助的人:896万
展开全部
调试下面语句看结果
char c='a';
char *pc=&c;
char **ppc=&pc;
printf("%d,%d,%d,%d,%d\n",c,pc,ppc,*ppc,**ppc);
一个正常变量c有一个地址(依电脑不同结果不同,我的电脑上是1244996)和变量值'a',要取得其地址就要一个指针,加一颗星,即*pc=&c,而指针pc本身也是一个变量,有其地址和变量值,这里的变量值就是c的地址1244996,所以输出的第二项为1244996,如果要取得pc的地址,就要指向指针的指针,即**ppc=&pc,而ppc还是一个变量,他的值就是pc的地址了,我这里是1244992,固输出第三项为1244992,以此类推,想获得ppc的指针,就来个指向指向指针的指针的指针,再加一颗星。
至于*ppc,看ppc的由来,c <- pc <- ppc ,那么*ppc就是pc,**ppc就是c,也就是每加一个星就往来的方向降一级
所以这个程序(在我电脑上)的输出结果就是 97,1244996,1244992,1244996,97
来自:求助得到的回答
颤抖皮卡丘
2013-02-18 · 超过13用户采纳过TA的回答
知道答主
回答量:31
采纳率:0%
帮助的人:33.5万
展开全部
举个例子:char * *P;char a[9]; 假如 **p=a[0]=10 (**p=*&a[0])
而*p就相当于&a[0] 则p就相当于指向了*p 的指针 (&*p=p,p=&&a[0])
我也是刚学到这里,希望对你有帮助~
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wangyb623
2013-02-18
知道答主
回答量:12
采纳率:0%
帮助的人:4.4万
展开全部
这是指向指针的指针,从概念可以明白,P依然是一个指针。这个指针特殊的地方是它所指向的还是一个指针,即*p是一个指针。再延伸一下可以知道,*p这个指针指向的是一个char型的数,即**p是一个char型的数字。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
雲哉
2013-02-18 · TA获得超过228个赞
知道答主
回答量:197
采纳率:50%
帮助的人:163万
展开全部
char **p是二级指针,*p可以表示一个字符串的首字符地址,p表示字符串的地址
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wurandexin
2013-02-18 · TA获得超过538个赞
知道小有建树答主
回答量:499
采纳率:100%
帮助的人:315万
展开全部
**p为指向指针的指针,那么先给它赋个值,
char **p;
char *a;
p = &a;

则p里就是a的地址.*p则是a的值,**p是a指向的变量
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式