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語言的文件裡,對操作符的結合性並沒有做出非常清楚的解釋。乙個滿分的回答是 它是仲裁者,在幾個操作符具有相同的優先順序時決定先執行哪乙個。每個操作符擁有某一級別的優先順序...