可能的重复项:
C++逗号运算符
C 逗号运算符的用途
我对C++并不陌生,但这是我第一次看到以下代码:
int a=0;
int b=(a=2,a+1);
这就是C++代码。你能告诉我这是怎么回事吗?变量 b 如何获得值 3?
此代码等效于以下内容:
int a = 2 ;
int b = a + 1 ;
逗号左侧的第一个表达式被计算,然后是其右侧的表达式。最右边表达式的结果存储在符号左侧=
变量中。
查找逗号运算符以获取更多详细信息。
http://en.wikipedia.org/wiki/Comma_operator
(a = 2, a + 1);
返回 3,因为在一般情况下,运算符 (a, b) 返回 b,而 (a, b) 中的计算从右到左开始。因此,在您的情况下,(a = 2, a + 1)
返回a + 1
,并且在执行运算符 a = 2
后a + 1
返回 3。