鱼C论坛

 找回密码
 立即注册
查看: 2119|回复: 9

[已解决]请问一下 char *(*p)[5]是什么意思

[复制链接]
发表于 2022-3-23 09:38:05 | 显示全部楼层 |阅读模式
3鱼币
char (*p)[5] 是指向5个char型数组的指针

char *(*p)[5] 是指向5个char型指针的 数组指针吗?
最佳答案
2022-3-23 09:38:06
本帖最后由 FK二十一 于 2022-3-23 12:45 编辑

首先它是一个指针*p,其次它指向的类型是 char*   [],即字符指针类型的指针数组。
你可以理解为括号里面的指针指向套在他外面的数组,所以它是一个指向指针数组的数组指针。

例如:
char *array[3] = {"甲鱼","鲮鱼","草鱼"};        //char *类型的数组array
char *(*p)[3] = &array;                                //括号里的*p指向数组array

或许这样更好理解一点:
char *array[3] = {"甲鱼","鲮鱼","草鱼"};     //char *,指针数组array
char *(*p)[] = NULL;                                //声明一个数组指针p,不用写2是因为指针数组是一维的,规定
                                                              //了类型也就规定了它每一步的步长,这个你可以以后再了解。
p = &array;                                            //给指针赋值。
对这个概念的理解的关键是由括号来区分优先级,进而形成的这一种表现形式。

最佳答案

查看完整内容

首先它是一个指针*p,其次它指向的类型是 char* [],即字符指针类型的指针数组。 你可以理解为括号里面的指针指向套在他外面的数组,所以它是一个指向指针数组的数组指针。 例如: char *array[3] = {"甲鱼","鲮鱼","草鱼"}; //char *类型的数组array char *(*p)[3] = &array; //括号里的*p指向数组array 或许这样更好理解一点: char *array[3] = {"甲鱼","鲮鱼","草鱼"}; ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-23 09:38:06 | 显示全部楼层    本楼为最佳答案   
本帖最后由 FK二十一 于 2022-3-23 12:45 编辑

首先它是一个指针*p,其次它指向的类型是 char*   [],即字符指针类型的指针数组。
你可以理解为括号里面的指针指向套在他外面的数组,所以它是一个指向指针数组的数组指针。

例如:
char *array[3] = {"甲鱼","鲮鱼","草鱼"};        //char *类型的数组array
char *(*p)[3] = &array;                                //括号里的*p指向数组array

或许这样更好理解一点:
char *array[3] = {"甲鱼","鲮鱼","草鱼"};     //char *,指针数组array
char *(*p)[] = NULL;                                //声明一个数组指针p,不用写2是因为指针数组是一维的,规定
                                                              //了类型也就规定了它每一步的步长,这个你可以以后再了解。
p = &array;                                            //给指针赋值。
对这个概念的理解的关键是由括号来区分优先级,进而形成的这一种表现形式。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-23 09:51:39 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-23 09:54:57 | 显示全部楼层

char (*p)[5] =a;就是一个数组指针
指针数组定义为:char *p[5]
char *(*p)[5] 是二级指针 :是指向指针的指针
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-3-23 10:00:06 | 显示全部楼层
口木又鸟 发表于 2022-3-23 09:54
char (*p)[5] =a;就是一个数组指针
指针数组定义为:char *p[5]
char *(*p)[5] 是二级指针 :是指向指 ...

指针数组 不也是 指向指针吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-23 10:06:41 | 显示全部楼层
本帖最后由 口木又鸟 于 2022-3-23 11:15 编辑


只有二级指针指向指针
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-23 11:11:22 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-23 11:14:32 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-23 11:50:49 | 显示全部楼层
看见指针就头疼
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-23 12:07:09 From FishC Mobile | 显示全部楼层
BlackWhite_idea 发表于 2022-3-23 10:00
指针数组 不也是 指向指针吗?

数组指针只是一个指针变量,指向二维数组,它占有内存中一个指针的存储空间。

指针数组是多个指针变量,以数组形式存在内存当中,占有多个指针的存储空间。

**分别在于储存空间
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-18 04:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表