c语言指针和数组问题

char **p;
char p[20][20];
char *p[100];
char (*p)[100];
四者分别代表什么?区别?

char **p; 定义指针的指针
char p[20][20]; 定义二维数组,p为数组首地址
char *p[100]; 定义指针数组,数组的元素是指针变量,指针变量为char *,元素个数为100
char (*p)[100]; 定义指向长度为100的 一维数组的指针追问

不好意思,我从来没接触过c,现在做的东西要用到的。可不可以给我具体讲讲他们是干嘛的?谢谢!!!

追答

这个不好说啊,遇到实际的问题学着用各种方法解决

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-09-16
char **p;
二级指针,指针的指针。
char p[20][20];
二维数组的first address.这里p也是一个二级指针
char *p[100];
100个 char指针元素 的first address.
char (*p)[100];
100个 char元素 的first address。
第2个回答  2011-09-16
指向char型变量指针的指针
char型二维数组p
char型指针数组
char型数组指针
第3个回答  2011-09-16
指向指针的指针 二级指针
二维数组 相当就是个二级指针
数组指针 指向数组的指针
指针数组 由指针构成的数组
第4个回答  2011-09-16
1.p是一个二级指针,指向字符的指针。
2.p是一个二维数组,数组元素是字符。
3.p是一个一维数组,数组元素是指向字符的指针。
4.p是一个指针,指向一个有100个元素的数组。即:数组指针。。
第5个回答  2011-09-16
char **p 二级指针;
char p[20][20] 二维数组;
char *p[100] 指针数组;
char (*p)[100] 二维数组指针;
相似回答