小编Jos*_*gan的帖子

与逗号在C/C++中的工作方式有些混淆

我已经使用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)

还是两个?有人可以解释逗号运算符的工作原理,特别是与没有赋值的语句有关吗?

c c++ comma operator-precedence operator-keyword

5
推荐指数
1
解决办法
203
查看次数

标签 统计

c ×1

c++ ×1

comma ×1

operator-keyword ×1

operator-precedence ×1