一些學(xué)習(xí)筆記 ,陷阱,缺陷
1、關(guān)于初始化:





















通過加括號(hào)來提示編譯器我們這里提供的是構(gòu)造函數(shù)的參數(shù)而非參數(shù)聲明,因?yàn)?(istream_iterator<string> (cin)) 不能解析為變量聲明,這個(gè)更void f ( (int i)) 不可能是函數(shù)聲明是一回事。多一對括號(hào)不可能解釋為合法的聲明語句。
2.關(guān)于double 和float 區(qū)別
一個(gè)例子















現(xiàn)在的編譯器一秒就可能運(yùn)行完成,
如果吧doubel x = 1e8 ,換為 float x = 1e8;
C++標(biāo)準(zhǔn)說 :
浮點(diǎn)類型有三種: float ,double, long double,關(guān)于精度很顯然
如果換成float 答案很詭異,因?yàn)槿Q于float的精度,能否表達(dá)0 1e8區(qū)間的整數(shù)
所以如果換為 float,可能運(yùn)行一秒,也可能是死循環(huán),因?yàn)槿绻鹒loat不能表達(dá)0 1e8區(qū)間的整數(shù), 因?yàn)槠渲?n-1 = n (由于浮點(diǎn)精度不夠)
。
3. 一些拼寫代碼錯(cuò)誤























一個(gè)支持標(biāo)準(zhǔn)c++的編譯器答案輸出是 1
原因很詭異,因?yàn)橛袀€(gè)有趣的是:注釋末尾‘??/’會(huì)被轉(zhuǎn)換為'\' ,寫個(gè)宏的都知道這個(gè)就是換行符,所以??/換轉(zhuǎn)換為\ ,而++x就相當(dāng)于粘貼到注釋行的末尾 ,所以++x.,不會(huì)起作用,是注釋的一部分。
在看一個(gè)例子:
一個(gè)符號(hào)標(biāo)準(zhǔn) c++的編譯器會(huì)報(bào)多少錯(cuò)誤。











先一步一步的分析
1:0[p] 其實(shí)和p[0]一樣
2: and not都是有效關(guān)鍵字 ,他們分別是&& 和!
3::>竟然也是合法的,他是]的雙字符寫法。
所以這個(gè)語句會(huì)被解析為 return p && p[0] && !p[1]>p[2] ,沒有語法錯(cuò)誤。
很詭異。
posted on 2009-03-08 14:05 expter 閱讀(1887) 評論(5) 編輯 收藏 引用 所屬分類: 其他學(xué)習(xí)筆記 、工作筆記 、生活筆記 、面試筆記 、算法與數(shù)據(jù)結(jié)構(gòu)