我不是C ++的新手,但这是我第一次看到以下代码:
int a=0;
int b=(a=2,a+1);
那是C ++代码。你能告诉我这里发生了什么吗?变量b如何得到值3?
答案 0 :(得分:12)
此代码与此相同:
int a = 2 ;
int b = a + 1 ;
评估逗号左侧的第一个表达式,然后评估右侧的表达式。最右边表达式的结果存储在=
符号左侧的变量中。
查找逗号运算符以获取更多详细信息。
答案 1 :(得分:3)
(a = 2, a + 1);
返回3,因为在一般情况下,运算符(a,b)返回b,并且(a,b)中的计算从右到左开始。因此,在您的情况下,(a = 2, a + 1)
返回a + 1
,并且在执行a = 2
运算符之后a + 1
返回3.