鱼C论坛

 找回密码
 立即注册
查看: 759|回复: 4

[已解决]想问一个关于指针的简单问题,求详细的解答一下

[复制链接]
发表于 2020-7-28 11:31:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
int* (*a)[10],        int (*a)[10],        int * a[10]。这三个的区别是什么?求大佬给讲解一下,真的懵逼了。
最佳答案
2020-7-28 11:59:43
IKXV 发表于 2020-7-28 11:52
我是不是可以这么理解:
int (*a)[]中的a就只是代表这个数组中的第一位元素的指针,也就是这个数组的指 ...

可以从优先级考虑,int (*a)[] 先看 (*a) ,它是一个指针,指向什么的指针呢?看前后面可以知道指向一个 int 数组的指针

int* a[10] 先看 a[10],它是一个数组,数组的元素是什么类型呢?是 int* 也就是整型指针类型。

第三个可能是我理解有误,int* (*a)[10] 是一个指向包含 10 个 int 指针的数组。可以这么理解,由于 int (*a)[] 是一个指向一个 int 数组的指针,那么 int* (*a)[10] 就是一个指向 int* 型数组的指针
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-7-28 11:34:49 | 显示全部楼层
int (*a)[10] 是定义一个数组指针,int * a[10] 是定义一个指针数组,int* (*a)[10] 是定义一个指向数组指针的指针
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-28 11:38:24 | 显示全部楼层
int *a[10] :数组指针。数组a里存放的是10个int型指针 int (*a)[10] :a是指针,指向一个数组
int* (*a)[10]:a是一个指向包含10个int型指针元素的数组
int *a[10] :这是一个存放int指针的数组
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-28 11:52:06 | 显示全部楼层
zltzlt 发表于 2020-7-28 11:34
int (*a)[10] 是定义一个数组指针,int * a[10] 是定义一个指针数组,int* (*a)[10] 是定义一个指向数组指 ...

我是不是可以这么理解:
int (*a)[]中的a就只是代表这个数组中的第一位元素的指针,也就是这个数组的指针。
int* a[10]中的a也是代表这个数组第一位的指针,但是他有a[1],a[2],...很多指针。
第三个有点绕没太懂。感觉本质上是不是也只是一个指向一个指针的指针地址。
可以这么理解吗?

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-28 11:59:43 | 显示全部楼层    本楼为最佳答案   
IKXV 发表于 2020-7-28 11:52
我是不是可以这么理解:
int (*a)[]中的a就只是代表这个数组中的第一位元素的指针,也就是这个数组的指 ...

可以从优先级考虑,int (*a)[] 先看 (*a) ,它是一个指针,指向什么的指针呢?看前后面可以知道指向一个 int 数组的指针

int* a[10] 先看 a[10],它是一个数组,数组的元素是什么类型呢?是 int* 也就是整型指针类型。

第三个可能是我理解有误,int* (*a)[10] 是一个指向包含 10 个 int 指针的数组。可以这么理解,由于 int (*a)[] 是一个指向一个 int 数组的指针,那么 int* (*a)[10] 就是一个指向 int* 型数组的指针
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-13 10:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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