鱼C论坛

 找回密码
 立即注册
查看: 2075|回复: 10

[已解决]c语言逗号运算符的一个问题

[复制链接]
发表于 2017-10-24 17:49:38 From FishC Mobile | 显示全部楼层 |阅读模式

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

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

x
为什么
houseprice=(249,500),这样的表达式最后面赋值给houseprice的值是500而不是249呢?
最佳答案
2017-10-24 21:02:27
御笔剑客 发表于 2017-10-24 20:57
底层一点的实现过程是怎样的呢?

啊?什么是底层?你的意思是不是要给个例子或者示范?
a = (249,500);  比如这个语句,加了(),那肯定执行()内的逗号运算符,逗号运算符的意思就是给出最后的值,就是500,别的值都被它排除了,所以 a = 500
a = 249,500;   又比如这个语句,没有(),根据优先级顺序,赋值高于逗号运算符,反正逗号运算符优先级最小!所以 a = 249,后面的不用管了,你要是一定想知道,那就是a = 249;, 500; 这样两个语句,前面是赋值,后面逗号运算符500,没有任何意义的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-10-24 18:13:06 | 显示全部楼层
等号的右结合性,把右边的值赋给表达式。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-24 18:41:51 From FishC Mobile | 显示全部楼层
千亩计者 发表于 2017-10-24 18:13
等号的右结合性,把右边的值赋给表达式。

啥?没怎么听明白
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-24 18:56:05 | 显示全部楼层

应该是一个语法,我也是猜的,比如a =2,是将等号右边的值赋给左边的变量,houseprice=(249,500)也应该是用右边的覆盖左边的值,不知道这么想对不对。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-24 19:24:24 From FishC Mobile | 显示全部楼层
好像不是覆盖的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-24 19:37:45 | 显示全部楼层

是这样的,逗号运算符的作用是:老子不管你前面写了什么,我都要把最后面的值给变量!!!
当然,你可以把他当小弟,把右边的()给去了,优先级来说,赋值“=”优先级大于“,”逗号运算符,一个更大的老大出现,强行把第一个值给了前面的变量。所以,逗号运算符必须要一个()罩着它,不然也是白瞎!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-24 20:57:08 | 显示全部楼层
丶忘却的年少o 发表于 2017-10-24 19:37
是这样的,逗号运算符的作用是:老子不管你前面写了什么,我都要把最后面的值给变量!!!
当然,你可以 ...

底层一点的实现过程是怎样的呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-24 21:02:27 | 显示全部楼层    本楼为最佳答案   
御笔剑客 发表于 2017-10-24 20:57
底层一点的实现过程是怎样的呢?

啊?什么是底层?你的意思是不是要给个例子或者示范?
a = (249,500);  比如这个语句,加了(),那肯定执行()内的逗号运算符,逗号运算符的意思就是给出最后的值,就是500,别的值都被它排除了,所以 a = 500
a = 249,500;   又比如这个语句,没有(),根据优先级顺序,赋值高于逗号运算符,反正逗号运算符优先级最小!所以 a = 249,后面的不用管了,你要是一定想知道,那就是a = 249;, 500; 这样两个语句,前面是赋值,后面逗号运算符500,没有任何意义的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-24 21:03:50 | 显示全部楼层
丶忘却的年少o 发表于 2017-10-24 21:02
啊?什么是底层?你的意思是不是要给个例子或者示范?
a = (249,500);  比如这个语句,加了(),那肯 ...

我懂了,谢谢大佬
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-24 21:04:44 | 显示全部楼层

叫我同学。不然压力很大,被你们捧太高了,我只是初学者
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-24 21:13:34 | 显示全部楼层
丶忘却的年少o 发表于 2017-10-24 21:04
叫我同学。不然压力很大,被你们捧太高了,我只是初学者

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 04:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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