【发布时间】:2015-09-15 21:37:04
【问题描述】:
我无法理解以下代码的输出如何是“-3”?
#include <stdio.h>
void main()
{
int a = -5;
int k = (a++, ++a);
printf("%d\n", k);
}
int k = (a++, ++a); 在 c 或 c++ 中的声明背后的概念是什么?
【问题讨论】:
-
@NathanOliver 你确定吗?
-
见What does the comma operator
,do in C?CC @NathanOliver -
@JoachimPileborg 是的。我撤回了我的评论和投票。
-
我将重新打开并重新关闭此问题,以删除错误添加到组合中的 UB 副本。
-
为了进一步演示
,运算符的效果,您可以尝试使用(++a, ++a),然后使用(a++, a++)(这实际上只是前增量和后增量之间差异的另一个说明)。
标签: c++ c initialization comma comma-operator