我已经使用 SO 一段时间作为参考,但之前从未问过问题。我目前正在上大学的 C++ 课程,并且还在阅读Bjarne Stroutstrup 的《编程:原则与实践》 ,只是为了我自己的利益,因为我在这里看到了一个真正推荐它的问题的答案。
我们目前正在课堂上讨论运算符,我似乎无法理解逗号运算符在语句中的工作方式。一个例子是课程在线部分的一个示例问题,即使我编写了一个 C 程序并使用 GDB 来获得结果,我也会一直出错。问题是:
假设在下面的表达式之前x==16,那么下面的表达式的值是多少(不一定是x的值)?
x++, ++x, x+=x
我对正确答案不感兴趣,而是对如何获得正确答案感兴趣。我已经阅读了类似问题的几个答案,例如这里的这个,但似乎我错过了当实际上没有赋值运算符时这是如何应用的。这和说的一样吗
int y = (x++, ++x, x+=x);
或者
int y = x++, ++x, x+=x;
或者都不是?有人可以解释一下逗号运算符是如何工作的,特别是与没有赋值的语句有关吗?