【发布时间】:2013-05-27 01:57:24
【问题描述】:
我不知道为什么下面两个子程序的结果不同:
int a , b;
a = 13, b=12;
(a > b)? (a++,b--):(a--,b++); // Now a is 14 and b is 11
a = 13, b=12;
(a > b)? a++,b-- : a--,b++; // Now a is 14 but b is 12
但是对于这些情况,结果是相同的:
a = 13, b=12;
(a < b) ? a++,b-- : a--,b++; // Now a is 12 and b is 13
a = 13, b=12;
(a < b) ? (a++,b--) : (a--,b++); // Again a is 12 and b is 13
为什么括号对"?" 之后的语句有区别,而对":" 之后的语句没有区别?你有什么想法吗?
【问题讨论】:
-
不以这种方式使用逗号的另一个原因。
标签: c++ c operator-precedence comma-operator