指向指针的指针,指针数组,二维数组的存储顺序

C语言 码拜 8年前 (2016-09-19) 1122次浏览
下面几个在存储时有什么区别呢?
char** p;
char *p[5];
char p[5][12]
对于char** p,本人知道p是指向指向字符变量的指针的地址,那p到底属于什么类型的指针?p+1是什么情况呢?
解决方案

20

char **p;
p 是一个指针,指向 char*
char *p[5];
p 是一个数组,有5个元素,元素类型是 char*
char p[5][12]
p 是一个数组,有5个元素,元素类型是 char [12]

40

char** 就是指向char*的指针
char*p[5]就是指向 char[5] 的指针
char p[5][12] 是一个二维数组,不是指针
第一个与第二个虽然都是指针,但他们指向的类型是不同的
不要把数组理解成指针,只不过是数组在某些情况下呆以退化为指针

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明指向指针的指针,指针数组,二维数组的存储顺序
喜欢 (0)
[1034331897@qq.com]
分享 (0)