鱼C论坛

 找回密码
 立即注册
查看: 2928|回复: 6

[已解决]指针运用(求助帖)

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

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

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

x
数组指针的跨度是什么样子的,为什么一个地址可以存有两个值。
最佳答案
2018-11-8 15:53:33
本帖最后由 beijudezixuan 于 2018-11-8 16:05 编辑
八目i 发表于 2018-11-8 13:56
你看那黑框框里的第一排最后一个,和第二排第一个。
这不是同一个地址嘛?


定义的位置那里 应该是 int (*p)[4]=math,  [4]表示是每行之间的跨度为4个下标(换成int型,也就是16个字节)
这样才能知道行间距,也就是行指针之间的地址差.*(p+i)才能指向math [ i ]
_92215095_IMG_20181106_094351_1541468631000_wifi_.jpg
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-11-8 00:09:52 | 显示全部楼层
数组指针的地址跨度,是与指针的类型相关的,int型指针,因为int占4个字节,所以跨度为4,char型指针就跨度为1
对于后面那句话,一个地址应该是不能储存两个值。而且从上述代码中似乎并没有反应出一个地址储存了两个值的现象
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-11-8 13:56:27 From FishC Mobile | 显示全部楼层
beijudezixuan 发表于 2018-11-8 00:09
数组指针的地址跨度,是与指针的类型相关的,int型指针,因为int占4个字节,所以跨度为4,char型指针就跨度 ...

你看那黑框框里的第一排最后一个,和第二排第一个。
这不是同一个地址嘛?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-8 15:53:33 | 显示全部楼层    本楼为最佳答案   
本帖最后由 beijudezixuan 于 2018-11-8 16:05 编辑
八目i 发表于 2018-11-8 13:56
你看那黑框框里的第一排最后一个,和第二排第一个。
这不是同一个地址嘛?


定义的位置那里 应该是 int (*p)[4]=math,  [4]表示是每行之间的跨度为4个下标(换成int型,也就是16个字节)
这样才能知道行间距,也就是行指针之间的地址差.*(p+i)才能指向math [ i ]
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-11-8 19:19:30 | 显示全部楼层
beijudezixuan 发表于 2018-11-8 15:53
定义的位置那里 应该是 int (*p)[4]=math,  [4]表示是每行之间的跨度为4个下标(换成int型,也就是16个 ...

可是那个为什么不报错,还能正常运行,好像一个地址能存在两个值的样子。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-8 19:38:55 | 显示全部楼层
八目i 发表于 2018-11-8 19:19
可是那个为什么不报错,还能正常运行,好像一个地址能存在两个值的样子。

我试了一下 DEV 和 codeforce网站的在线编译,都会报错的。。  
毕竟不同的IDE上的编译环境是有差异的,VS的话,我觉得它是进行了这样的处理,行指针的间距是3个int型变量的时候,那么第四个元素的所在位置其实是第二行的第一个位置。。   
我们设初始地址为start,对于代码来说  i=0,j=3, 当前地址=start+j*4   i=1,j=0,当前地址=start+i*3*4  
那么它们的地址就指向了相同一个元素也就是4  。
所以程序的运行结果实际上是没有显示所有的元素的,因为其中存在着重复元素。
楼主可以把所有的元素值显示出来看看
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-11-8 19:43:41 | 显示全部楼层
beijudezixuan 发表于 2018-11-8 19:38
我试了一下 DEV 和 codeforce网站的在线编译,都会报错的。。  
毕竟不同的IDE上的编译环境是有差异的, ...

好的,谢谢哈。
(冒昧的问下,能不能把带你学c带你飞的课后习题卖我(现在一次性买不起那个会员),不能你就当没看见。)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-23 06:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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