課程
/后端開發
/C++
/C++遠征之起航篇
請問為什么cout<<x,y,z<<endl;是錯的
2015-05-10
源自:C++遠征之起航篇 4-3
正在回答
<<是向左移位運算符,在接在輸出流后的情況下被默認重載定義了輸出功能,后接一個基本數據類型或字符、字符串常量。在"cout<<x,y,z<<endl;"中"cout<<x"輸出x并返回一個標準輸出流對象,也就相當于輸出x先后再進行"cout<<,y,z<<endl;"那么下一步是"cout<<,"這是一個未定義的行為,也就是說系統沒有定義這種寫法。和用“+”去加兩個未重載運算符的函數,用“*”去乘你自己定義的兩個復數這類行為是一樣的。語言本身沒有這種規定,編程者用沒有指明這樣寫的意義,計算機自然無法識別。
這個就像英語語法,規定的你那樣寫是錯誤的.這樣寫cout<<x<<y<<z<<endl;是正確語法,是對的
應該寫成:“cout<<x<<y<<z<<endl;”
你學了重載就知道了~
沒有規矩,不成方圓!規矩。
你能告訴我為什么要學英語么..
這個你可以問問發明C++的那個人。。。。C++中就那么規定的,這有啥好糾結的。。。
舉報
C++亮點盡在其中,本課程是在C語言基礎上的一個延伸,得以升華
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-01-11
<<是向左移位運算符,在接在輸出流后的情況下被默認重載定義了輸出功能,后接一個基本數據類型或字符、字符串常量。在"cout<<x,y,z<<endl;"中"cout<<x"輸出x并返回一個標準輸出流對象,也就相當于輸出x先后再進行"cout<<,y,z<<endl;"那么下一步是"cout<<,"這是一個未定義的行為,也就是說系統沒有定義這種寫法。和用“+”去加兩個未重載運算符的函數,用“*”去乘你自己定義的兩個復數這類行為是一樣的。語言本身沒有這種規定,編程者用沒有指明這樣寫的意義,計算機自然無法識別。
2015-12-06
這個就像英語語法,規定的你那樣寫是錯誤的.這樣寫cout<<x<<y<<z<<endl;是正確語法,是對的
2015-07-29
應該寫成:“cout<<x<<y<<z<<endl;”
2015-06-24
你學了重載就知道了~
2015-05-21
沒有規矩,不成方圓!規矩。
2015-05-11
你能告訴我為什么要學英語么..
2015-05-11
這個你可以問問發明C++的那個人。。。。C++中就那么規定的,這有啥好糾結的。。。