请问C语言中指向二维指针数组的指针该怎么表示?

char a1 = 'a', a2 = 'b', a3 = 'c';
char a4 = 'd', a5 = 'e', a6 = 'f';
int i;
char *a[2][3] = {{&a1, &a2, &a3}, {&a4, &a5, &a6}};
要用一个指向二维指针数组的指针指向char *a[2][3],该如何表示??
最新回答
苦笑

2024-07-03 05:37:25

整形一位数组:int a[2]; int * p =a; p[n] = 10;

整形二维数组:int a[2][3]; int **p=a; p[n][m] = 10;
指针二维数组:(把int换成char *) char * a[2][3]; char ***p=a; p[n][m] = &a1;
追问
大哥,你水平比我还菜,最起码我知道int a[2][3];int (*p)[3]; p = a;
追答
int a[2][3]; int **p=a; p[n][m] = 10;

这个上机试过吗?试过再说话。

> 大哥,你水平比我还菜,最起码我知道int a[2][3];int (*p)[3]; p = a;
你的p=a没有错,可是p是指向了一维数组,如果操作里面的数据,还需要写成p[n]。
而我的int **p 直接指向了二维数组中的数据,操作的时候不再需要一维数组的临时指针,直接使用p[n][m]就OK了。
追问

说了你很菜的,非的让我贴图上来,数组名不是二级指针,不管是一维数组、二维数组,甚至是三维数组,数组名都是一级指针, 你非得用个二级指针指向一级指针,不错才怪

看到了没,首先你编译就过不去,提示你类型不匹配,运行还出现段错误,麻烦你下次回答之前先自己试试!

追答

刚才自己的测试代码写错了,误导了大家,抱歉。

再试:

偏爱

2024-07-03 08:10:08

没有学过c,但学过c++,但觉得差不多
a指针型数组,a就是一个数组的指针,指向a[0][0];
没有调试,猜的。如果不是的话,试试a[0],
在或者a[0]+1,希望帮到你
错在情深

2024-07-03 06:16:12

char **p;
p=a;