c语言逗号运算符的一个问题
为什么houseprice=(249,500),这样的表达式最后面赋值给houseprice的值是500而不是249呢? 等号的右结合性,把右边的值赋给表达式。 千亩计者 发表于 2017-10-24 18:13
等号的右结合性,把右边的值赋给表达式。
啥?没怎么听明白{:10_266:} 御笔剑客 发表于 2017-10-24 18:41
啥?没怎么听明白
应该是一个语法,我也是猜的,比如a =2,是将等号右边的值赋给左边的变量,houseprice=(249,500)也应该是用右边的覆盖左边的值,不知道这么想对不对。。。。 好像不是覆盖的 御笔剑客 发表于 2017-10-24 19:24
好像不是覆盖的
是这样的,逗号运算符的作用是:老子不管你前面写了什么,我都要把最后面的值给变量!!!
当然,你可以把他当小弟,把右边的()给去了,优先级来说,赋值“=”优先级大于“,”逗号运算符,一个更大的老大出现,强行把第一个值给了前面的变量。所以,逗号运算符必须要一个()罩着它,不然也是白瞎!!! 丶忘却的年少o 发表于 2017-10-24 19:37
是这样的,逗号运算符的作用是:老子不管你前面写了什么,我都要把最后面的值给变量!!!
当然,你可以 ...
底层一点的实现过程是怎样的呢? 御笔剑客 发表于 2017-10-24 20:57
底层一点的实现过程是怎样的呢?
啊?什么是底层?你的意思是不是要给个例子或者示范?
a = (249,500);比如这个语句,加了(),那肯定执行()内的逗号运算符,逗号运算符的意思就是给出最后的值,就是500,别的值都被它排除了,所以 a = 500
a = 249,500; 又比如这个语句,没有(),根据优先级顺序,赋值高于逗号运算符,反正逗号运算符优先级最小!所以 a = 249,后面的不用管了,你要是一定想知道,那就是a = 249;, 500; 这样两个语句,前面是赋值,后面逗号运算符500,没有任何意义的 丶忘却的年少o 发表于 2017-10-24 21:02
啊?什么是底层?你的意思是不是要给个例子或者示范?
a = (249,500);比如这个语句,加了(),那肯 ...
我懂了,谢谢大佬 御笔剑客 发表于 2017-10-24 21:03
我懂了,谢谢大佬
{:10_336:} 叫我同学。不然压力很大,被你们捧太高了,我只是初学者 {:10_262:} 丶忘却的年少o 发表于 2017-10-24 21:04
叫我同学。不然压力很大,被你们捧太高了,我只是初学者
{:10_254:}
页:
[1]