调试下面语句看结果
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来自:求助得到的回答
温馨提示:答案为网友推荐,仅供参考