鱼C论坛

 找回密码
 立即注册
楼主: x51zqq

[技术交流] 关于C语言的运算符优先级

[复制链接]
发表于 2016-3-14 11:57:59 | 显示全部楼层
我们老师说,研究这些类似a++,++a是没有用的,不同的运行器得出的结果也会不一样。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-3-14 12:30:14 | 显示全部楼层
635624913 发表于 2016-3-14 11:57
我们老师说,研究这些类似a++,++a是没有用的,不同的运行器得出的结果也会不一样。

我不是在研究 ++ --运算符啊,我想说的是运算符的优先级 以及一些编程上的小细节
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-3-14 19:28:43 | 显示全部楼层
本帖最后由 庚午 于 2016-3-14 19:30 编辑


z = x++, y++, ++y;
这是一个逗号表达式,取值是最后一个++y,作为z的值。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-3-14 20:31:24 | 显示全部楼层
想不明白为啥是231呢,明明赋值号的优先级比较低啊,经过我在vim上测试确实是231啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-3-14 20:34:00 | 显示全部楼层
有点搞明白了,先算了后面的的运算,最后把x赋值给z吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-3-14 21:14:51 | 显示全部楼层
雷雨天玩电脑 发表于 2016-3-14 20:34
有点搞明白了,先算了后面的的运算,最后把x赋值给z吗

不是,你看解释吧   有汇编代码的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-3-14 21:18:12 | 显示全部楼层
庚午 发表于 2016-3-14 19:28
z = x++, y++, ++y;
这是一个逗号表达式,取值是最后一个++y,作为z的值。

呵呵  我说你不明白  你能这么说就是说明你还没有弄明白运算符的优先级   看汇编代码吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-3-14 21:20:32 | 显示全部楼层
雷雨天玩电脑 发表于 2016-3-14 20:34
有点搞明白了,先算了后面的的运算,最后把x赋值给z吗

可以看到我的解释吗   回复了就可以看见的呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-3-15 19:56:47 | 显示全部楼层
x51zqq 发表于 2016-3-14 21:18
呵呵  我说你不明白  你能这么说就是说明你还没有弄明白运算符的优先级   看汇编代码吧

呵呵,你一味的只去看汇编码有什么用,不同的编译器采用的 加加减减 结核性难道会相同,不要想当然的理解汇编码,那会陷入误区
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-3-15 20:59:01 | 显示全部楼层
庚午 发表于 2016-3-15 19:56
呵呵,你一味的只去看汇编码有什么用,不同的编译器采用的 加加减减 结核性难道会相同 ...

首先你说的也有道理  但是我说的并不是在研究++--运算符,而是语句整体的运算符优先级,逗号运算符为什么是决定一切的,x++肯定是先把x的原值带入运算然后是x自增一,所以执行x++时按照语句整体的运算符优先结合性 先把x的原值赋值给z 然后才是x自增一,最后才是后面语句的一些运算(不论在不同的编译器++--结核性是否一样,z的值都是不变的,除非在不同的编译器C语言的运算符优先级也会不同)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-3-15 21:02:30 | 显示全部楼层
只是个人见解,我并没有说我就是都对的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-3-15 21:12:00 | 显示全部楼层
谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-3-15 21:44:26 | 显示全部楼层
x51zqq 发表于 2016-3-15 20:59
首先你说的也有道理  但是我说的并不是在研究++--运算符,而是语句整体的运算符优先级,逗号运算符为什么是 ...

不解释了,请打开谭浩强先生的C语言书籍 第二章 找到(自加自减运算符和逗号运算符)详细介绍了优先级以及运算符,那里有你需要的答案,如果找不到告诉我,我告诉你在哪一页,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2016-3-16 15:10:04 | 显示全部楼层
来看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-11-28 09:01:29 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-12-1 05:15:26 | 显示全部楼层
支持
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-12-2 21:38:09 | 显示全部楼层
本帖最后由 F3IYcZ7 于 2016-12-2 21:40 编辑

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

使用道具 举报

发表于 2017-3-29 09:32:34 | 显示全部楼层
看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-3-29 09:47:10 | 显示全部楼层
看看,看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-28 07:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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