我在引用C ++ MCQ时遇到了这段代码。以前我只使用&&或||用于组合多个条件,但是此代码使用',':
using namespace std;
int main()
{
int i;
for (i = 0; i < 0, 5; i++)
printf("%d ", i);
return 0;
}
此问题的正式答案是无限循环。请有人建议处理此代码段,如何评估条件
在for循环的情况下,您有一个逗号运算符。 comma operator评估其第一个操作数并丢弃结果,然后评估第二个操作数并返回此值(和类型)。在所有C / C ++运算符中,逗号运算符的优先级也最低,这意味着它始终是绑定到表达式的最后一个运算符。
因此,for循环中的条件等效于:
(i < 0), 5
此表达式的结果始终为5,这不是错误的。因此,您会遇到无限循环。