鱼C论坛

 找回密码
 立即注册
查看: 2262|回复: 11

数组指针的定义中“int (*p)[5]=&temp;”的“p"是数组首元素地址的地址吗?

[复制链接]
发表于 2020-3-5 12:40:50 | 显示全部楼层 |阅读模式

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

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

x
不理解为什么“*(*p+i)”是数组第i个元素。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-5 12:48:17 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-5 14:18:56 | 显示全部楼层
仔细看看这张图片
捕获.PNG
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-5 15:49:54 | 显示全部楼层
int *p[5],首先它是一个数组,它的大小是5,它里面存放的数据类型是int *,也就是整型指针。  所以它叫指针数组、 (从右向左解析这个表示)
int (*p)[5],首先p是一个指针,指向大小为5的数组,因此这叫数组指针。(括号优先)
至于*(*p+i) 等价于 arr[i][0],这个是二维数组,与标题的问题不一致,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-6 21:47:49 | 显示全部楼层
int (*p)[5]是一个数组指针,p指针变量指向一个拥有5个元素的一维数组,值为一维数组的首地址,而*p才是数组首元素的地址,虽然p与*p的值是一样的,但是他们的含义不同,这点尤其重要!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-7 10:27:30 | 显示全部楼层

C:\Users\Rod\OneDrive\图片\屏幕快照\001.png
我把第十行的p改成d后打印出来的6487552是什么东西呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-12 18:28:47 | 显示全部楼层
sanguine_boy 发表于 2020-3-6 21:47
int (*p)[5]是一个数组指针,p指针变量指向一个拥有5个元素的一维数组,值为一维数组的首地址,而*p才是数 ...

int (*p)[5]是一个数组指针,p指针变量指向一个拥有5个元素的一维数组
int array[10];
p = &array;  p不是指向拥有5个元素的一维数组吗?为啥还可以指向拥有10个元素的数组?
[5]和 [10]类型一样吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-26 21:30:31 | 显示全部楼层
琴长不过时光 发表于 2020-3-12 18:28
int (*p)[5]是一个数组指针,p指针变量指向一个拥有5个元素的一维数组
int array[10];
p = &array;  p ...

这样不是会报错吗?你的能运行?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-27 14:48:22 | 显示全部楼层
sanguine_boy 发表于 2020-3-26 21:30
这样不是会报错吗?你的能运行?

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

使用道具 举报

发表于 2020-3-27 15:47:10 | 显示全部楼层

。。。。。不是吧?能运行的话你贴个图片出来看下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-15 13:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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