第39課 逗號操作符的分析

2021-08-14 18:41:29 字數 2011 閱讀 8063

1.1、

逗號表示式用於將多個子表示式連線為乙個表示式

1.2、

逗號表示式的值為

最後乙個子表示式的值

1.3、

逗號表示式的

前n-1個子表示式可以沒有返回值

1.4、

逗號表示式按照

從左向右的順序 ->

計算每個子表示式的值

exp1,exp2,exp3,…,

expn

;/******************* 逗號表示式的示例 *******************/

#include

using namespace std;

void func(int i)

int main()

,而是逗號表示式,相當於只給陣列的前三位賦值:2, 5, 8, 其餘為0;改正應該是, , };從左向右的順序。

int a[3][3] = ;

int i=0;

int j=0;

while(i<5)

func(i),    //這裡相當於while(i<5)  兩句組合成乙個表示式。

i++;

for(i=0; i<3; i++)

} (i, j) = 6;     //因為逗號表示式從左向右返回最後乙個元素的值。

cout << "i = " << i << endl;    //3

cout << "j = " << j << endl;    //6

return 0;

}2.1、在c++中過載逗號操作符是合法的

2.2、使用

全域性函式對逗號操作符進行過載

2.3、

過載函式的

引數必須有乙個是

類型別

(因為這裡指的是類的操作符過載)

2.4、

過載函式的

返回值型別必須是引用

classtype& operator ,(const classtype& a, const classtype& b)

/************************     過載逗號操作符     ************/

#include

using namespace std;

class test

int value()

};/*      //不過載時從左向右正確執行

test& operator , (const test& a, const test& b)

*/test func(test& i)      //傳進來的是物件的‌引用,列印這個物件的值

int main()

3.1、

c++通過

函式呼叫

擴充套件操作符的功能

3.2、

進入函式體前必須完成所有引數的計算

3.3、

函式引數的計算次序是不定的

3.4、

過載後無法嚴格從左向右

計算表示式,不過載時返回能從左向右,所以

過載逗號操作符完全無意義

。4.1、

逗號表示式

從左向右順序

計算每個子表示式的值

4.2、

逗號表示式的值為

最後乙個子表示式的值

4.3、

操作符過載

無法完全實現逗號操作符的原生意義

(從左向右計算)

4.4、

工程開發中

不要過載逗號操作符

39 逗號操作符的分析

注 部落格中內容主要來自 狄泰軟體學院 部落格僅當私人筆記使用。測試環境 ubuntu 10.10 gcc版本 9.2.0 一 逗號操作符 1 逗號操作符 可以構成逗號表示式 逗號表示式用於將多個子表示式連線為乙個表示式 逗號表示式的值為最後乙個子表示式的值 逗號表示式中的前n 1個子表示式可以沒有...

C 39 逗號操作符分析

exp1,exp2,exp3,expn include include using namespace std void func int i int main int i 0 int j 0 while i 5 func i 注意這裡!i for i 0 i 3 i i,j 6 注意這裡!cout...

逗號操作符

逗號操作符 可以構成逗號表示式 逗號表示式用於將多個子表示式連線為乙個表示式 逗號表示式的值為最後乙個子表示式的值 逗號表示式的前n 1個子表達 先來看乙個例子 include include using namespace std void func int i intmain int i 0 i...