
其实这个疑问没必要阐述,一般也就中国的蛋疼考试会涉及,实际基本永不到。
首先printf 没有输出,printf打印的只有一个
(ch1,ch2,ch3)
所以实际的值由空格里的逗号运算决定。

对于逗号运算
[Asm] 纯文本查看 复制代码
a,b
只对表达式a进行推导,而输出的结果是表达式b的值。
逗号运算符的集合排序是从左到右,所以

[Asm] 纯文本查看 复制代码
(ch1,ch2,ch3)
等价于
[Asm] 纯文本查看 复制代码
((ch1,ch2),ch3)

先算前一个括号printf 没有输出,结果是ch2,然后再算外面的括号,结果是ch3.
递推下去,其实结果必定是最后一个,也就是第二个输出的n。
个人看来,逗号运算除了减少代码的阅读难度外,用处不大,不过要留意的是,前面的表达式是会算出结果的,比如
[Asm] 纯文本查看 复制代码
a=1; b=(a++,a);

这里b是赋值为a,但是a将要进行了一次++运算,所以b的值是2而不是1。这也有我认为有用的地方了。
参与人数 1热心值 +1理由
Syer
已答复!
查看全部评分
【吾爱破解论坛总版规】 - [让你充分认识吾爱破解论坛行为规则]
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-126161-1.html
喜欢外景这组有点胶片复古的感觉没有雪梨略不开心