首先看乙個例子:
int fun1()
int fun2()
int main()
輸出結果是
num2
num1
1 2
為什麼呢?為什麼不是num11num22呢?這裡涉及到cout輸出流的執行順序問題。
cout的輸出順序有如下規律:
計算順序:自右至左
輸出順序:自左至右
cout作為輸出流,有乙個緩衝區,先從右往左將輸出讀入緩衝區,在從緩衝區中讀出(類似堆疊)
假設a =
1; b=2
; c=3;
cout
<<
a<<
b<<
c<<
endl;
緩衝區:|3
|2|1
|<-
(把「<-
」看作是指標)
輸出:|3|
2|<-
(輸出1)
|3|<-
(輸出2)
|<-
(輸出3
)結果就是123.
在一開始的例子中,從右往左讀入,先執行fun2(),輸出num2,並將返回值2儲存進緩衝區,再執行fun1(),輸出num1,並將返回值1儲存進緩衝區。最後開始讀取緩衝區中的內容,輸出1 2。
關於C 輸出流cout的執行順序問題
首先看乙個例子 int fun1 int fun2 int main 輸出結果是 num2 num1 1 2 為什麼呢?為什麼不是num11num22呢?這裡涉及到cout輸出流的執行順序問題。cout的輸出順序有如下規律 計算順序 自右至左 輸出順序 自左至右 cout作為輸出流,有乙個緩衝區,先...
C 中cout流的輸出順序
先來看一段 includeusing namespace std int hello1 int hello2 int main int hello1 int hello2 我第一次看到這段 認為輸出的順序就是 a hello1 b hello2 但是真正的執行結果呢,我們來看看 hello2 hel...
C 輸出流cout方法
輸出指定字數的字串。basic ostream write const char type s,streamsize n 1 write遇到空字元時不會停止 2 即使超出邊界,write仍繼續列印 3 可用於資料資料 需將數值資料強制轉換為char 計數制函式 十進位制 十六進製制 八進位制 調整字...