下面几个在存储时有什么区别呢?
char** p;
char *p[5];
char p[5][12]
对于char** p,本人知道p是指向指向字符变量的指针的地址,那p到底属于什么类型的指针?p+1是什么情况呢?
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]
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] 是一个二维数组,不是指针
第一个与第二个虽然都是指针,但他们指向的类型是不同的
不要把数组理解成指针,只不过是数组在某些情况下呆以退化为指针
char*p[5]就是指向 char[5] 的指针
char p[5][12] 是一个二维数组,不是指针
第一个与第二个虽然都是指针,但他们指向的类型是不同的
不要把数组理解成指针,只不过是数组在某些情况下呆以退化为指针