#include
創(chuàng)新互聯(lián)公司是網(wǎng)站建設(shè)專家,致力于互聯(lián)網(wǎng)品牌建設(shè)與網(wǎng)絡(luò)營銷,專業(yè)領(lǐng)域包括成都網(wǎng)站設(shè)計、成都做網(wǎng)站、電商網(wǎng)站制作開發(fā)、微信小程序開發(fā)、微信營銷、系統(tǒng)平臺開發(fā),與其他網(wǎng)站設(shè)計及系統(tǒng)開發(fā)公司不同,我們的整合解決方案結(jié)合了恒基網(wǎng)絡(luò)品牌建設(shè)經(jīng)驗和互聯(lián)網(wǎng)整合營銷的理念,并將策略和執(zhí)行緊密結(jié)合,且不斷評估并優(yōu)化我們的方案,為客戶提供全方位的互聯(lián)網(wǎng)品牌整合方案!
using namespace std;
int main()
{
int i=2,y;
y=(++i)+(++i)+(++i);
return 1;
}
此程序運行完畢之后,y的值是13.
但是粗略一看應(yīng)該是12才對??!
但是這是一個很有趣的問題:
它與表達式求值密切關(guān)系,
表達式求值,C++里面是從左到右的求值方式,而+法運算又是左結(jié)合的
這樣, 你可以認(rèn)為是 y = ((++x)+(++x)) + (++x);
于是,做最優(yōu)先的加法之前,先要把兩個操作數(shù)計算出來,
于是首先計算左操作數(shù) ((++x)+(++x)) ,這個又是一個子表達式
先計算子表達式的左操作數(shù)=(++x) = 3
再計算子表達式的右操作數(shù)=(++x)=4
左操作數(shù)計算出來 = 4+4 = 8
然后,再計算最優(yōu)先的加法的右操作數(shù) = ++x = 5
最后,y= 8 + 5 = 13