4

可能重复:
C++ 逗号运算符
C 逗号运算符的使用

我对 C++ 并不陌生,但这是我第一次看到以下代码:

int a=0;
int b=(a=2,a+1);

那是C++代码。你能告诉我这里发生了什么吗?以及变量 b 如何获得值 3?

4

2 回答 2

13

这段代码等价于:

int a = 2 ; 
int b = a + 1 ;

对逗号左侧的第一个表达式求值,然后是其右侧的表达式。最右边表达式的结果存储在=符号左边的变量中。

查找逗号运算符以获取更多详细信息。

http://en.wikipedia.org/wiki/Comma_o​​perator

于 2012-10-10T16:49:08.433 回答
3

(a = 2, a + 1);return 3 因为在一般情况下,运算符 (a, b) 返回 b,并且 (a, b) 中的计算从右到左开始。因此,在您的情况下,(a = 2, a + 1)returna + 1和 after 运算符a = 2执行后a + 1返回 3。

于 2012-10-10T16:51:51.353 回答