php cout<<的一點看法
更新時間:2010年01月24日 15:57:53 作者:
cout<<運算符后面如果是常整數(shù),那么最大可以輸出4294967295,即2^32-1,不允許出現(xiàn)負數(shù),也就是說,cout<<運算符對于常整數(shù)只重載了unsigned int型;對于有小數(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
對于常字符串,理論上是無限長,但收到VC++編譯器的限制,如果常串長到了引起換行的地步,那就將導(dǎo)致編譯錯,也就是說,cout<<后接常串的話串的長度限制為編譯器中的1行。
對于cout<<后加變量的情況:
先說帶小數(shù)的情況,跟常量數(shù)略有不同,其輸出結(jié)果跟變量的類型有關(guān),int型的按原型輸出,double型的6位一下(含6位)按原型輸出,6位以上按科學(xué)技術(shù)法形式輸出,其他類型也類似。順便說一句,int型的范圍是-214783648~214780647,共2^32次方個數(shù),在賦值時就算越界,編譯器也不會報錯,也不會警告,所以要小心,有個常識,若表示全球人口數(shù)(約60億),應(yīng)該用double或long double型,其他類型是不行的;對于變量字符串,即char型數(shù)組,我沒有發(fā)現(xiàn)有什么限制,因為我寫:
char v[50000];
memset(v,1,49999);
cout<<v<<endl;
時,屏幕上出現(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
對于常字符串,理論上是無限長,但收到VC++編譯器的限制,如果常串長到了引起換行的地步,那就將導(dǎo)致編譯錯,也就是說,cout<<后接常串的話串的長度限制為編譯器中的1行。
對于cout<<后加變量的情況:
先說帶小數(shù)的情況,跟常量數(shù)略有不同,其輸出結(jié)果跟變量的類型有關(guān),int型的按原型輸出,double型的6位一下(含6位)按原型輸出,6位以上按科學(xué)技術(shù)法形式輸出,其他類型也類似。順便說一句,int型的范圍是-214783648~214780647,共2^32次方個數(shù),在賦值時就算越界,編譯器也不會報錯,也不會警告,所以要小心,有個常識,若表示全球人口數(shù)(約60億),應(yīng)該用double或long double型,其他類型是不行的;對于變量字符串,即char型數(shù)組,我沒有發(fā)現(xiàn)有什么限制,因為我寫:
char v[50000];
memset(v,1,49999);
cout<<v<<endl;
時,屏幕上出現(xiàn)了數(shù)不清的小圓臉(ASCII碼1的字符),就算用memset越界賦值,也沒有問題。
相關(guān)文章
php實現(xiàn)的Curl封裝類Curl.class.php用法實例分析
這篇文章主要介紹了php實現(xiàn)的Curl封裝類Curl.class.php用法,以完整實例形式較為詳細的分析了Curl封裝類的定義及相關(guān)使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-09-09
php讀取mysql亂碼,用set names XXX解決的原理分享
解決亂碼的方法,我們經(jīng)常使用“set names utf8”,那么為什么加上這句代碼就可以解決了呢?下面跟著我一起來深入set names utf8的內(nèi)部執(zhí)行原理2011-12-12
Can''t create/write to file ''C:\WINDOWS\TEMP\...MYSQL報錯解決方法
Can't create/write to file 'C:\WINDOWS\TEMP\...MYSQL報錯解決方法,參考下面的方法即可。2011-06-06
PHP通過插入mysql數(shù)據(jù)來實現(xiàn)多機互鎖實例
這篇文章主要介紹了PHP通過插入mysql數(shù)據(jù)來實現(xiàn)多機互鎖的方法,包括了加鎖與釋放鎖的完整實現(xiàn)方法,非常實用,需要的朋友可以參考下2014-11-11

