第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

cout<a+<a;的正確答案是什么?

cout<a+<a;的正確答案是什么?

C++
幕布斯6054654 2019-08-02 02:02:21
cout<a+<a;的正確答案是什么?最近在一次采訪中,有一個(gè)下面的客觀類型的問(wèn)題。int a = 0;cout << a++ << a;回答:a.10b.01C.未界定的行為我回答了選擇b,即輸出為“01”。但令我驚訝的是,后來(lái)一位面試官告訴我,正確的答案是選項(xiàng)c:未定?,F(xiàn)在,我知道了C+中序列點(diǎn)的概念。以下語(yǔ)句未定義此行為:int i = 0;i += i++ + i++;但根據(jù)我對(duì)聲明的理解cout << a++ << a,ostream.operator<<()會(huì)被調(diào)用兩次,第一次是ostream.operator<<(a++)后來(lái)ostream.operator<<(a).我還檢查了VS 2010編譯器的結(jié)果,它的輸出也是‘01’。
查看完整描述

3 回答

?
當(dāng)年話下

TA貢獻(xiàn)1890條經(jīng)驗(yàn) 獲得超9個(gè)贊


你可以想到:

cout << a++ << a;

作為:

std::operator<<(std::operator<<(std::cout, a++), a);

C+保證以前的評(píng)價(jià)的所有副作用都是在序列點(diǎn)..函數(shù)參數(shù)計(jì)算之間沒(méi)有序列點(diǎn),這意味著參數(shù)a可以在論證前進(jìn)行評(píng)估std::operator<<(std::cout, a++)或者之后。因此,上述結(jié)果是未知的。


C+17更新

在C+17中,規(guī)則已經(jīng)更新。特別是:

在移位運(yùn)算符表達(dá)式中E1<<E2E1>>E2的每一個(gè)值計(jì)算和副作用E1的值計(jì)算和副作用之前對(duì)E2.

這意味著它需要代碼來(lái)生成結(jié)果。b,輸出01.

看見(jiàn)P0145R3修飾C+的表達(dá)式求值順序更多細(xì)節(jié)。



查看完整回答
反對(duì) 回復(fù) 2019-08-03
?
慕萊塢森

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個(gè)贊

序列點(diǎn)只定義部分點(diǎn)菜。在您的情況下,您已經(jīng)(一旦完成了重載解決):

std::cout.operator<<( a++ ).operator<<( a );

之間有一個(gè)序列點(diǎn)。a++第一次打電話到std::ostream::operator<<,在第二個(gè)a第二個(gè)電話是std::ostream::operator<<,但之間沒(méi)有順序點(diǎn)。a++a;唯一的排序約束是a++在第一次調(diào)用之前對(duì)其進(jìn)行全面評(píng)估(包括副作用)。operator<<,第二個(gè)a在第二個(gè)調(diào)用之前對(duì)其進(jìn)行全面評(píng)估。operator<<..(也有一些謹(jǐn)慎的排序約束:第二個(gè)調(diào)用operator<<不能先于前者,因?yàn)樗蟮谝粋€(gè)結(jié)果作為一個(gè)參數(shù)。)§5/4(C+03)規(guī)定:

除注意到的情況外,未具體說(shuō)明單個(gè)運(yùn)算符操作數(shù)的計(jì)算順序和個(gè)別表達(dá)式的子表達(dá)式,以及產(chǎn)生副作用的順序。在前一個(gè)序列點(diǎn)和下一個(gè)序列點(diǎn)之間,標(biāo)量對(duì)象最多應(yīng)該通過(guò)表達(dá)式的計(jì)算修改其存儲(chǔ)值一次。此外,只能訪問(wèn)先前的值來(lái)確定要存儲(chǔ)的值。對(duì)于一個(gè)完整表達(dá)式的子表達(dá)式的每一個(gè)允許的順序,都應(yīng)滿足本款的要求;否則,該行為是不明確的。

表達(dá)式的允許順序之一是a++a,第一個(gè)呼叫operator<<,第二次呼叫operator<<;這將修改a (a++),并訪問(wèn)它而不是確定新值(第二個(gè)a),行為是未定義的。




查看完整回答
反對(duì) 回復(fù) 2019-08-03
  • 3 回答
  • 0 關(guān)注
  • 433 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)