请问一下 char *(*p)[5]是什么意思
char (*p) 是指向5个char型数组的指针char *(*p) 是指向5个char型指针的 数组指针吗? 本帖最后由 FK二十一 于 2022-3-23 12:45 编辑
首先它是一个指针*p,其次它指向的类型是 char* [],即字符指针类型的指针数组。
你可以理解为括号里面的指针指向套在他外面的数组,所以它是一个指向指针数组的数组指针。
例如:
char *array = {"甲鱼","鲮鱼","草鱼"}; //char *类型的数组array
char *(*p) = &array; //括号里的*p指向数组array
或许这样更好理解一点:
char *array = {"甲鱼","鲮鱼","草鱼"}; //char *,指针数组array
char *(*p)[] = NULL; //声明一个数组指针p,不用写2是因为指针数组是一维的,规定
//了类型也就规定了它每一步的步长,这个你可以以后再了解。
p = &array; //给指针赋值。
对这个概念的理解的关键是由括号来区分优先级,进而形成的这一种表现形式。 {:10_252:}
char (*p) =a;就是一个数组指针
指针数组定义为:char *p
char *(*p) 是二级指针 :是指向指针的指针 口木又鸟 发表于 2022-3-23 09:54
char (*p) =a;就是一个数组指针
指针数组定义为:char *p
char *(*p) 是二级指针 :是指向指 ...
指针数组 不也是 指向指针吗? 本帖最后由 口木又鸟 于 2022-3-23 11:15 编辑
只有二级指针指向指针 {:10_323:} {:10_323:} 看见指针就头疼 BlackWhite_idea 发表于 2022-3-23 10:00
指针数组 不也是 指向指针吗?
数组指针只是一个指针变量,指向二维数组,它占有内存中一个指针的存储空间。
指针数组是多个指针变量,以数组形式存在内存当中,占有多个指针的存储空间。
**分别在于储存空间
页:
[1]