鱼C论坛

 找回密码
 立即注册
查看: 1522|回复: 8

[已解决]s1e23课后题,

[复制链接]
发表于 2021-9-29 15:10:43 | 显示全部楼层
就这么说吧,
首先,假设array数组的起始地址是0,长度是10,即array数组占用的地址为:0-9。

在来回答你的问题:
(1)数组确实只有一个array,因为只定义了一个。
但是内存单元是很长的,在array数组后面还有其他的内存,10.11.12.13...(这些表示后面的内存地址)等等。

(2)&array+1中的,“+1”指的是加上array数组的的长度,即10。
前面已经假设了array数组的起始地址为0,所以&array+1就为0+10 = 10,
所以此时指针指向的是10这个地址(已经不属于array数组的地址范围)。

(3)(int *)这个强制转换就是改变指针的移动的步长,
之前是10(整个array的长度),转换后为1(正常在程序中,int *的步长为4字节,我这里对应我的例子,写为1)。

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-26 04:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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