我已经使用SO一段时间作为参考,但之前从未问过问题.我目前正在大学C++课程中阅读Bjarne Stroutstrup 编程:原理和实践,仅仅是为了我自己的利益,因为我在这里看到了一个真正推荐它的问题的答案.
我们现在正在课堂上覆盖操作员,而我似乎无法理解逗号操作符在语句中的工作方式.一个例子是类的在线部分的示例问题,即使我编写C程序并使用GDB获取结果,我仍然会出错.问题是:
假设在下面的表达式之前x == 16,下面的表达式的值是什么(不一定是x的值)?
x ++,++ x,x + = x
我对正确答案不感兴趣,以至于如何得到正确的答案.我已经阅读了类似问题的几个答案,例如这里的问题,但似乎我错过了当实际上没有分配运算符时这是如何适用的.这跟说的一样吗
int y = (x++, ++x, x+=x);
Run Code Online (Sandbox Code Playgroud)
要么
int y = x++, ++x, x+=x;
Run Code Online (Sandbox Code Playgroud)
还是两个?有人可以解释逗号运算符的工作原理,特别是与没有赋值的语句有关吗?