C++ 我不明白这个--intx=0;int y=2;int z=(+;+;x,+;+;y);

C++ 我不明白这个--intx=0;int y=2;int z=(+;+;x,+;+;y);,c++,C++,我得到z是3,因为值取自++y,但为什么选择++y?它被称为逗号运算符。它计算++x(现在x是1),然后计算++y(现在y是3),并将y的值赋给z`` “``逗号运算符从左到右分组。 §5.18 由逗号分隔的一对表达式从左到右求值,并丢弃左表达式的值 因为(++x,+++y)首先计算++x,然后计算++y,最后计算的内容将返回并分配给z 这将使用。等价物为: int x = 0; int y = 2; int z = (++x, ++y); int x = 0; int y = 2;

我得到z是3,因为值取自++y,但为什么选择++y?

它被称为
逗号运算符。它计算
++x
(现在x是1),然后计算
++y
(现在y是3),并将
y的值赋给
z``

“``逗号运算符从左到右分组。 §5.18

由逗号分隔的一对表达式从左到右求值,并丢弃左表达式的值

因为(++x,+++y)首先计算
++x
,然后计算
++y
,最后计算的内容将返回并分配给
z

这将使用。等价物为:

int x = 0; 
int y = 2; 
int z = (++x, ++y);
int x = 0; 
int y = 2; 
++x; // or x = x + 1;
++y; // or y = y + 1;
int z = y;