C++ 这里如何使用逗号运算符?

C++ 这里如何使用逗号运算符?,c++,comma-operator,C++,Comma Operator,可能重复: 我不是C++新手,但这是我第一次看到下面的代码: int a=0; int b=(a=2,a+1); 这是C++代码。你能告诉我这是怎么回事吗?变量b是如何得到值3的?此代码相当于: int a = 2 ; int b = a + 1 ; 首先计算逗号左侧的表达式,然后计算其右侧的表达式。最右边表达式的结果存储在=符号左侧的变量中 有关详细信息,请查阅逗号运算符 (a=2,a+1)返回3,因为在一般情况下,运算符(a,b)返回b,并且(a,b)中的计算从右向左开始。因此,在

可能重复:

我不是C++新手,但这是我第一次看到下面的代码:

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

这是C++代码。你能告诉我这是怎么回事吗?变量b是如何得到值3的?

此代码相当于:

int a = 2 ; 
int b = a + 1 ;
首先计算逗号左侧的表达式,然后计算其右侧的表达式。最右边表达式的结果存储在
=
符号左侧的变量中

有关详细信息,请查阅逗号运算符


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

不要写那样的代码读起来很可怕,这就是我看到的代码。你所说的可怕的阅读是什么意思?你的意思是在这种情况下不使用逗号运算符还是什么?@seeker-如果我们要问代码的作用,那就是可怕的代码。你确定吗?我认为代码相当于
intb=a=2;int b=a+1注意细微的差别