鱼C论坛

 找回密码
 立即注册
12
返回列表 发新帖
楼主: 肚子饿了233

[已解决]C语言!与指针有关,为啥要打括号?

[复制链接]
发表于 2021-1-7 21:58:23 | 显示全部楼层


。。。。这个要懂原理的话要说好多, 可以说是寄存器的原因 ,因为规定不能这样,存在溢出风险, 地址可以 但是地址可以是 基地址+偏移量+偏移量+....
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-7 22:01:00 | 显示全部楼层
肚子饿了233 发表于 2021-1-7 21:56
为啥不能相加呢? 难道相加就不表示偏移量了吗?

。。这个是汇编规定 ,简单理解就是存在溢出可能, 和寄存器有关 和操作系统规定 有关, 你只需要记住地址可以表达为:地址=基地址 +偏移+偏移+。。。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-7 22:04:49 | 显示全部楼层
肚子饿了233 发表于 2021-1-7 21:56
为啥不能相加呢? 难道相加就不表示偏移量了吗?

回复不了了 ,吃了我好多回复。。。 简单理解就是规定,想理解为啥就看下小甲鱼的汇编教程
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-7 22:09:48 | 显示全部楼层
WindyJane 发表于 2021-1-7 22:04
回复不了了 ,吃了我好多回复。。。 简单理解就是规定,想理解为啥就看下小甲鱼的汇编教程

不好意思,我等级太低了,加不了您。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-7 22:10:03 | 显示全部楼层
肚子饿了233 发表于 2021-1-7 21:46
你的意思是,两个指向相同数组的指针的相加减表示的是偏移量吗?

谭浩强的《C语言程序设计》232页指出:如果指针变量 p1 和 p2 都指向同一数组,如执行 p2 - p1,结果是p2 - p1的值(两个地址之差)。这样,人们就不需要具体地知道 p1 和 p2 的值,然后去计算它们的相对位置,而是直接用 p2 - p1 就可知道它们所指元素的相对距离。两个地址不能相加,如 pl + p2是无实际意义的,也就是说两个指针相加是没有意义的,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-7 22:10:22 | 显示全部楼层
WindyJane 发表于 2021-1-7 22:04
回复不了了 ,吃了我好多回复。。。 简单理解就是规定,想理解为啥就看下小甲鱼的汇编教程

好哒,谢谢,寒假一定会补上!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-7 22:16:30 | 显示全部楼层
风过无痕1989 发表于 2021-1-7 22:10
谭浩强的《C语言程序设计》232页指出:如果指针变量 p1 和 p2 都指向同一数组,如执行 p2 - p1,结果是p2 ...

我们学校用的是苏小红的教材,书里压根没提到这。但你引用出谭浩强的两指针相加无意义,但我也不知道为啥无意义?我是不是探究的太深了,需要放一放?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-7 22:25:31 | 显示全部楼层
肚子饿了233 发表于 2021-1-7 22:16
我们学校用的是苏小红的教材,书里压根没提到这。但你引用出谭浩强的两指针相加无意义,但我也不知道为啥 ...

知道指针乘、除、加没有意义即可,深究我也觉得没有必要,倒不如将精力多用于他处,如数组、函数的指针等定义与使用方面
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2021-1-8 11:21:30 | 显示全部楼层
参考
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-12 06:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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