逗号(,)如何在条件部分中的两个表达式之间的for循环中工作

Sof*_*kat -2 c++ loops initialization

在初始化部分的for循环中,您可以根据需要声明和初始化许多变量,但当然它们必须是相同的类型.在条件部分,您可以应用任何表达语句,如AND(&&),OR(||),>,< ,==等但是(,)不是表达式.它如何在这里工作只是a = 1,2,3,4,5,6和b = 1,2,3,4,5,6,7,8 ,9,10和a <6,b <9返回a = 1,2,3,4,5,6,7,8,9 = b

for(int a=1,b=1,c=2,d=5;a<4,b<10;a++,b++)//initialize variables and using , between expression
{
    cout<<a<<" "<<b<<endl;
}
Run Code Online (Sandbox Code Playgroud)

Jer*_*fin 12

因为......事实并非如此.

逗号运算符计算并丢弃其左操作数(因此在大多数情况下,其左操作数将具有副作用).在评估左操作数(并且已经发生任何副作用)之后,评估右操作数.从中产生的值是右操作数的值.


Vad*_*Key 8

实际上它不是或者,逗号运算符的行为可以描述为:

在C和C++编程语言中,逗号运算符(由标记表示)是一个二元运算符,它计算其第一个操作数并丢弃结果,然后计算第二个操作数并返回该值(和类型).

来自wiki:https://en.wikipedia.org/wiki/Comma_o​​perator

所以只有k<10考虑到帐户的结果.