main(){charc[]="abcd";
char *p[ ] = { &c[0],&c[1],&c[2],&c[3],&c[4]}; char **pp=p; printf("%c ",*(*(pp+2)+1));最后输出的为什么是d,谢谢
*(*(pp+2)+1)的值为d。
解析
char **pp=p;说明pp是二级指针,它指向指针数组首地址p[0],pp+2后为p[2],*(pp+2)为p[2]的内容,即&c[2];*(pp+2)+1,地址再加1,即&c[3];*(*(pp+2)+1),取内容为c[3]的值d。你可运行下面的程序来验证:
#include"stdio.h"
int main()
{
char c[]= "abcd";
char *p[]={&c[0],&c[1],&c[2],&c[3]};
char **pp=p;
printf("%c
",*(*(pp+2)+1));
return 0;
}
程序的运行结果:
下一篇:小学数学怎么做
热门标签: