看板 C_and_CPP 關於我們 聯絡資訊
問題(Question): <<= operator 丟出來的東西好像在 C 和在 C++ 的意思不太一樣 今天在老師講義上看到 (_capacity<<=1)++; 這樣的寫法愣了一下 不太懂為什麼 C++ 竟然可以編得過 @@ 以 C 語言的角度來看, () 內部算出來的東西應該不是一個 lvalue 阿, 為什麼可以去 modify 他呢 想請教各位板大這部份在 C 和 C++ 的差異 m(_ _)m -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.247.99
LPH66:沒記錯的話 assignment 類運算子都是回傳它左邊那個 lvalue 06/14 09:32
xatier:自問自答,剛剛去翻了一下 C++11 standard darft 06/14 10:07
xatier:5-17 All require a modifiable lvalue as their left 06/14 10:08
xatier:operand and return an lvalue referring to the left oper 06/14 10:08
xatier:operand 所以一樓說的是對的XD 謝謝 06/14 10:09
xatier: ^^^^ draft 06/14 10:09
xatier:順便對照一下 C11 標準 http://codepad.org/SvaOQT1k 06/14 10:23
xatier:C++ 說是 lvalue, C 說不是阿ˊ_>ˋ 06/14 10:23
ibmibmibm:這就是C和C++的些微差異之一 06/15 17:57
EdisonX:這讓我想到 ++++x 的寫法.. 06/15 19:06