【发布时间】:2023-04-11 08:04:02
【问题描述】:
int c = someIntegerValue;
// Some code...
int i;
for ( i = 0; i < 5, i < c; i++ ) {
...
}
我的编译器说error: expression has no effect,听起来很对。那么,这里将使用这两个比较中的哪一个?我的猜测是 i < c 被忽略了,但我想从其他人那里得到一些确认,因为我还不能运行这段代码......
【问题讨论】:
-
不是 C 专家,但它似乎正试图以一种奇怪的方式做相当于
i < 5 && i < c的事情,但我不完全确定。 -
编译器的权利。
i < 5这里是求值的,但是值没用就扔掉了,而且没有副作用,所以这个程序员明显是误会了什么。 -
为什么反对票和接近票?逗号运算符并不是世界上最直观的东西。它让我大吃一惊,我已经编写 C 代码近 2 年了。
标签: c for-loop comma-operator