php cout<<的一點(diǎn)看法
更新時(shí)間:2010年01月24日 15:57:53 作者:
cout<<運(yùn)算符后面如果是常整數(shù),那么最大可以輸出4294967295,即2^32-1,不允許出現(xiàn)負(fù)數(shù),也就是說,cout<<運(yùn)算符對(duì)于常整數(shù)只重載了unsigned int型;對(duì)于有小數(shù)的情況,則保留6位有效數(shù)字.
即整數(shù)與小數(shù)的位數(shù)之和不應(yīng)該超過6位,如果小數(shù)部分過長,那么系統(tǒng)將按四舍五入法來近似成6位,如果整數(shù)部分過長,那么也近似成為6位
例如:
cout<<123.4567 結(jié)果是123.457,
cout<<123.4564 結(jié)果是123.456,
cout<<123456.1 結(jié)果是123456,
cout<<123456.5 結(jié)果是123457
對(duì)于常字符串,理論上是無限長,但收到VC++編譯器的限制,如果常串長到了引起換行的地步,那就將導(dǎo)致編譯錯(cuò),也就是說,cout<<后接常串的話串的長度限制為編譯器中的1行。
對(duì)于cout<<后加變量的情況:
先說帶小數(shù)的情況,跟常量數(shù)略有不同,其輸出結(jié)果跟變量的類型有關(guān),int型的按原型輸出,double型的6位一下(含6位)按原型輸出,6位以上按科學(xué)技術(shù)法形式輸出,其他類型也類似。順便說一句,int型的范圍是-214783648~214780647,共2^32次方個(gè)數(shù),在賦值時(shí)就算越界,編譯器也不會(huì)報(bào)錯(cuò),也不會(huì)警告,所以要小心,有個(gè)常識(shí),若表示全球人口數(shù)(約60億),應(yīng)該用double或long double型,其他類型是不行的;對(duì)于變量字符串,即char型數(shù)組,我沒有發(fā)現(xiàn)有什么限制,因?yàn)槲覍懀?
char v[50000];
memset(v,1,49999);
cout<<v<<endl;
時(shí),屏幕上出現(xiàn)了數(shù)不清的小圓臉(ASCII碼1的字符),就算用memset越界賦值,也沒有問題。
例如:
cout<<123.4567 結(jié)果是123.457,
cout<<123.4564 結(jié)果是123.456,
cout<<123456.1 結(jié)果是123456,
cout<<123456.5 結(jié)果是123457
對(duì)于常字符串,理論上是無限長,但收到VC++編譯器的限制,如果常串長到了引起換行的地步,那就將導(dǎo)致編譯錯(cuò),也就是說,cout<<后接常串的話串的長度限制為編譯器中的1行。
對(duì)于cout<<后加變量的情況:
先說帶小數(shù)的情況,跟常量數(shù)略有不同,其輸出結(jié)果跟變量的類型有關(guān),int型的按原型輸出,double型的6位一下(含6位)按原型輸出,6位以上按科學(xué)技術(shù)法形式輸出,其他類型也類似。順便說一句,int型的范圍是-214783648~214780647,共2^32次方個(gè)數(shù),在賦值時(shí)就算越界,編譯器也不會(huì)報(bào)錯(cuò),也不會(huì)警告,所以要小心,有個(gè)常識(shí),若表示全球人口數(shù)(約60億),應(yīng)該用double或long double型,其他類型是不行的;對(duì)于變量字符串,即char型數(shù)組,我沒有發(fā)現(xiàn)有什么限制,因?yàn)槲覍懀?
char v[50000];
memset(v,1,49999);
cout<<v<<endl;
時(shí),屏幕上出現(xiàn)了數(shù)不清的小圓臉(ASCII碼1的字符),就算用memset越界賦值,也沒有問題。
相關(guān)文章
php抓取網(wǎng)站圖片并保存的實(shí)現(xiàn)方法
這篇文章主要介紹了php抓取網(wǎng)站圖片并保存的實(shí)現(xiàn)方法,重點(diǎn)借鑒了匹配img標(biāo)簽和其src屬性正則的寫法,封裝了一個(gè)php遠(yuǎn)程抓取圖片的類,感興趣的小伙伴們可以參考一下2015-10-10php實(shí)現(xiàn)的Curl封裝類Curl.class.php用法實(shí)例分析
這篇文章主要介紹了php實(shí)現(xiàn)的Curl封裝類Curl.class.php用法,以完整實(shí)例形式較為詳細(xì)的分析了Curl封裝類的定義及相關(guān)使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-09-09php讀取mysql亂碼,用set names XXX解決的原理分享
解決亂碼的方法,我們經(jīng)常使用“set names utf8”,那么為什么加上這句代碼就可以解決了呢?下面跟著我一起來深入set names utf8的內(nèi)部執(zhí)行原理2011-12-12幾款免費(fèi)開源的不用數(shù)據(jù)庫的php的cms
下面的幾種內(nèi)容采集系統(tǒng)都是英文版的,全部不需使用數(shù)據(jù)庫,都是國外的免費(fèi)并且開源CMS。對(duì)中文支持如何,你自己試試吧!2010-12-12Can''t create/write to file ''C:\WINDOWS\TEMP\...MYSQL報(bào)錯(cuò)解決方法
Can't create/write to file 'C:\WINDOWS\TEMP\...MYSQL報(bào)錯(cuò)解決方法,參考下面的方法即可。2011-06-06PHP通過插入mysql數(shù)據(jù)來實(shí)現(xiàn)多機(jī)互鎖實(shí)例
這篇文章主要介紹了PHP通過插入mysql數(shù)據(jù)來實(shí)現(xiàn)多機(jī)互鎖的方法,包括了加鎖與釋放鎖的完整實(shí)現(xiàn)方法,非常實(shí)用,需要的朋友可以參考下2014-11-11