理解C 右結合

2021-08-22 08:28:45 字數 1041 閱讀 5718

c++中的cout是右結合的,舉個例子,

#include 

using

namespace

std;

int main()

輸出結果是:2一2二2三

和想象中一樣嗎?如果一樣說明你理解怎麼回事,不懂的話繼續往下看。

計算過程如下:

1.依次把cout後面的語句往上堆,圖中最左邊一列;

2.堆完就開始計算,從上往下計算,圖中中間一列,注意,式中的++運算此時已經用掉了!

3.從底往上輸出,最右邊一列:i一i二i三,此時i=2;注意,因為++在數字前,所以在輸出時已經計算了!

下面這個該輸出什麼呢

#include 

using

namespace

std;

int main()

答案是:0一0二0三

順便說一下 ++i 和 i++ 的區別,++i 是先把 i 加 1 再繼續其他操作; i ++ 是先執行其他操作再把 i 加 1;

比如

#include 

using

namespace

std;

int main()

#include 

using

namespace

std;

int main()

最後來個綜合一點的例子:

#include 

using

namespace

std;

int main()

輸出結果為:1一1二0三1

簡單理解就是 ++i 在沒有輸出該位置的 i 前就進行加減運算, i++在輸出後把相應的 i 輸出後再進行加減運算。

c語言的左結合性與右結合性

右結合性,就是在表示式中最右邊的操作最先執行,然後從右到左依次執行 左結合性的操作符 如位操作符 和 則是從左至右依次執行 在標準c語言的文件裡,對操作符的結合性並沒有做出非常清楚的解釋。乙個滿分的回答是 它是仲裁者,在幾個操作符具有相同的優先順序時決定先執行哪乙個。每個操作符擁有某一級別的優先順序...

現代C 理解右值引用

右值引用是c 11中新增新的引用型別。右值引用只不過是一種新的 c 語法。基於右值引用,引申出的 2 種 c 程式設計技巧 移動語義和完美 難以理解。引入右值引用的主要目的是提高 程式執行效率。有些物件在複製時需要進行深複製 拷貝 深拷貝往往非常耗時。合理使用右值引用可以避免深複製操作。右值引用通過...

c c 中 運算子 左結合與右結合

右結合性,就是在表示式中最右邊的操作最先執行,然後從右到左依次執行 左結合性的操作符 如位操作符 和 則是從左至右依次執行 在標準c語言的文件裡,對操作符的結合性並沒有做出非常清楚的解釋。乙個滿分的回答是 它是仲裁者,在幾個操作符具有相同的優先順序時決定先執行哪乙個。每個操作符擁有某一級別的優先順序...