逗號運算符如何工作逗號運算符如何在C ++中工作?例如,如果我這樣做:a = b, c;最終是否等于b或c?(是的,我知道這很容易測試 - 只是在這里記錄,以便有人快速找到答案。)更新: 此問題在使用逗號運算符時暴露了細微差別。只是記錄下來:a = b, c; // a is set to the value of b!a = (b, c); // a is set to the value of c!這個問題實際上是受到代碼中的拼寫錯誤的啟發(fā)。打算做什么a = b;c = d;轉(zhuǎn)換成a = b, // <- Note comma typo!
c = d;
4 回答

HUWWW
TA貢獻1874條經(jīng)驗 獲得超12個贊
請注意,逗號運算符可能在C ++中過載。因此,實際行為可能與預期的行為非常不同。
例如,Boost.Spirit非常巧妙地使用逗號運算符來實現(xiàn)符號表的列表初始值設(shè)定項。因此,它使以下語法成為可能且有意義:
keywords = "and", "or", "not", "xor";
請注意,由于運算符優(yōu)先級,代碼(故意?。┫嗤?/p>
(((keywords = "and"), "or"), "not"), "xor";
也就是說,第一個被調(diào)用的運算符是keywords.operator =("and")
返回一個代理對象,在該代理對象上operator,
調(diào)用其余的s:
keywords.operator =("and").operator ,("or").operator ,("not").operator ,("xor");
- 4 回答
- 0 關(guān)注
- 633 瀏覽
添加回答
舉報
0/150
提交
取消