C++逗号表达式
轉自:https://zhidao.baidu.com/question/106961628.html
逗號表達式的語法為:
表達式1,表達式2,...表達式n
C++順序計算表達式1,表達式2,……,表達式n的值。例如:
int a,b,c;
a=l,b=a+2, c=b+3;
由于按順序求值, 所以能夠保證b一定在a賦值之后, c一定在b賦值之后。該逗號表 達式可以用下面3個有序的賦值語句來表示:
a=1;
b=a+2;
c=b+3;
逗號表達式是有值的,這一點是語句所不能代替的。逗號表達式的值為第n個子表達 式的值,即表達式n的值。例如:
int a,b,c,d;
d=(a=1,b=a+2,c=b+3);
cout<<d<<endl;
輸出結果為:
6
上例中輸出的結果d即為c的值。
逗號表達式還可以用于函數調用中的參數。例如:
func(n,(j=1,j+4),k);
該函數調用有3個參數,中間的參數是一個逗號表達式。括號是必須的,否則,該函數有4個參數了。逗號表達式作為值的形式,可以用于幾乎所有的地方。
C++中,如果逗號表達式的最后一個表達式為左值,則該逗號表達式為左值。例如:
(a=1,b,c+1,d)=5; //ok:即d=5
->在C中,逗號表達式是不能作左值的,所以 “(a=1,b,c+1,d)=5;”將通不過編譯
總結
- 上一篇: 计算机图书
- 下一篇: [OpenGL ES 03]3D变换:模