下面是我写的代码:
#include<stdio.h>
#include<stdlib.h>
int main()
{
char *p[3] = {"123","321","qqe"};
putchar(*(p[0]));
putchar(*(p[1]));
putchar(*(p[2]));
putchar(*(p[0] + 1));
putchar(*(p[0] + 2));
putchar('\n');
putchar(*(*(p + 2) + 2));
}
由于[]的优先级高于*,所以第6行中变量p的声明的意思是:首先声明了一个三维数组,然后这个数组是指针数组,其中p[0],p[1],p[2](*(p+0),*(p+1),*(p+2)
)分别指向第一、二、三个数组。
实验结果如下:
13q23
e