C语言怎么定义一个字符指针指向一个二维字符数组的首地址

2024-11-09 06:19:46
推荐回答(4个)
回答(1):

二维数组也是“数组的数组”所以定义一个指向由m个元素组成的一维数组指针即可指向二维数组的首元素地址。

如:
char arr[2][2] = { { 'a', 'b' }, { 'c', 'd' } };
char (*p)[2];
p=arr; // p指向首元素地址。
char c = *(p[0]+ 1);// 指向0行1列 即字符b

回答(2):

例如
定义:char *a[10][10];
现在指针a就是指向一个二维数组的指针
或者
char a[10][10];
char*p;
p=a;
此时p就是指向二维数组a的指针

回答(3):

一个二维数组是按先行后列方式存储在内存的,所以:
char ch[3][5]={{"aaaa"},{"bbbb"},{"cccc"}};
中有3行、每行5列,其第0行行首地址是ch[0]、第1行是ch[1]。
也就是ch[0]这个地址里装进的是第0行的第0个字符a.
char ch[3][5]={{"aaaa"},{"bbbb"},{"cccc"}};
char *p;
p=ch[0];//指向字符'a',这里就是首地址
p=ch[1];//指向字符'b'
p=ch[2];//指向字符'c'

回答(4):

char *p;
char a[10][10];
p=a;