请问以下代码输出的结果为什么?- 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的地址

分析:

 综上分析:运行代码得到


以上仅供参考

猜你喜欢

转载自blog.csdn.net/m0_73969113/article/details/130668204