请问以下代码输出的结果为什么?- c语言指针习题-爱代码爱编程
#include<stdio.h>
int main()
{
char *c[] = {"ENTER","NEW","POINT","FIRST"};
char**cp[] = {c+3,c+2,c+1,c};
char***cpp = cp;
printf("%s\n", **++cpp);
printf("%s\n", *--*++cpp+3);
printf("%s\n", *cpp[-2]+3);
printf("%s\n", cpp[-1][-1]+1);
return 0;
}
这里简单画图讲解一下思路:
这里:
c是字符指针数组,存储的类型是char*类型的元素首字符地址
cp也是字符指针数组,存储的类型是二级指针char**类型的元素,每个元素存储的内容是地址,指向空间的内容是c数组元素的地址
cpp是三级指针变量,类型是char*** ,存储的是cp的地址
分析:
综上分析:运行代码得到
以上仅供参考