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...