• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            C++中char和int型變量的一點(diǎn)心得

            字符字面值一般是用一對單引號來表示。char類型一般就是用字符字面值來初始化、賦值。由于char類型的是單字節(jié)長度,當(dāng)給char類型的變量用字符字面值賦值時(shí),當(dāng)單引號里面的內(nèi)容超過一個(gè)字節(jié)時(shí),系統(tǒng)會自動截取一個(gè)字節(jié)的內(nèi)容給char變量,忽略其他的字節(jié)內(nèi)容。
            比如char a='1234';c++會認(rèn)為單引號里的每一個(gè)數(shù)值都看做一個(gè)字符字面值,也就是說1 2 3 4各占一個(gè)字節(jié),'1234'也就是一共占4個(gè)字節(jié),然而char變量a只是占一個(gè)字節(jié),初始化它的值卻有4個(gè)字節(jié),系統(tǒng)要從'1234'中截取一個(gè)字節(jié)的內(nèi)容給a,然而是截取'1'給a嗎?不是,是把'4'給a。因?yàn)樵趚86平臺(http://baike.baidu.com/view/339142.htm)上,數(shù)據(jù)是以little-endian(再如:char b='啊';由于一個(gè)漢字是雙字節(jié)的,系統(tǒng)會截取其中一個(gè)字節(jié)給char,但鬼才知道截取的那個(gè)字節(jié)是什么,所以cout<<b時(shí)會出現(xiàn)亂碼。
            當(dāng)給char變量賦值正確的用ASII表中的字符,比如char c='!',單引號里面的內(nèi)容是什么,cout就會輸出什么。
            當(dāng)給char變量用一個(gè)整形字面字初始化時(shí),比如char d=55,這時(shí)系統(tǒng)會根據(jù)在ASII表中這個(gè)整型值代表的控制字符是什么,就會輸入什么,比如在ASii表中55是'7'的ASII值,cout<<d;的結(jié)果就是7。char對應(yīng)ascii值如果是可顯示字符就可以輸出來,如果是不可顯示字符,就輸不出來.就好像0x0D和0x0A它們分別表于回車符和換行符,但是在它們本身沒有一個(gè)形狀能表示這些字符得,就沒辦法顯示出來了.
            然而ASCII表中只有0到127這128種,如果當(dāng)大于127的整數(shù)甚至是大于255給char時(shí),系統(tǒng)的運(yùn)行結(jié)果未知。
            字符串字面值,也就是雙引號來定義的,一般稱作為c風(fēng)格字符串,他的類型應(yīng)該是char*,所以char e="t";是會發(fā)生編譯錯誤的。
            對于int變量,int f=10;自然是正確的,這不用多解釋了。然而如果把一個(gè)字符字面值給int,如int g='a',會把字符a在ASCII表中的ASCII值(也就是97)給a,cout<<g;的結(jié)果就是97。
            如果把一個(gè)多字符字面值給int,如int h='abc';cout<<h;的結(jié)果是6382179。這個(gè)就需要好好解釋下了,首先'a'的ASCII值是97,內(nèi)存中占一個(gè)字節(jié)8位,就是01100001,b是01100010,c是01100011。由于int是32位的,不夠的位用0補(bǔ)齊,在存入內(nèi)存時(shí),a是高位所以存到高地址位,c是低位所以存到低地址位,四個(gè)字節(jié)從低地址到高地址依次是
            01100011
            01100010
            01100001
            00000000
            讀取的時(shí)候跟存入的時(shí)候整好相反,先讀高地址位,然后低地址位,也就是00000000 01100001 01100010 01100011 這32位代表的十進(jìn)制整型值整好是6382179。
            以上有不少內(nèi)容是我從CSDN論壇上各種高人回復(fù)的貼子里總結(jié)的,在此感謝他們。

            posted on 2010-11-21 15:12 古月 閱讀(5573) 評論(0)  編輯 收藏 引用


            只有注冊用戶登錄后才能發(fā)表評論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            <2025年7月>
            293012345
            6789101112
            13141516171819
            20212223242526
            272829303112
            3456789

            導(dǎo)航

            統(tǒng)計(jì)

            常用鏈接

            留言簿

            隨筆分類

            隨筆檔案

            文章檔案

            C++/C

            搜索

            積分與排名

            最新評論

            閱讀排行榜

            評論排行榜

            青青草原1769久久免费播放| 久久综合给合久久狠狠狠97色| 潮喷大喷水系列无码久久精品| 国产情侣久久久久aⅴ免费| AV狠狠色丁香婷婷综合久久| 久久青草国产手机看片福利盒子| 精品久久综合1区2区3区激情| 久久亚洲色一区二区三区| 免费精品久久天干天干| 人妻无码久久一区二区三区免费 | 精品永久久福利一区二区| 99久久这里只有精品| 武侠古典久久婷婷狼人伊人| 性做久久久久久久| 狠狠色综合网站久久久久久久| 一本一道久久综合狠狠老| 91久久精品无码一区二区毛片| 久久精品国产亚洲av麻豆蜜芽| 99久久精品费精品国产一区二区 | 久久99热精品| 狠狠色丁香婷婷久久综合| 国产一级做a爰片久久毛片| 亚洲国产成人精品无码久久久久久综合 | 少妇久久久久久被弄到高潮| 国产精品久久久久久福利69堂| 久久只有这精品99| 久久久久久久久久久免费精品 | 欧美久久综合性欧美| 亚洲国产另类久久久精品小说 | 亚洲精品无码久久不卡| 久久久久久a亚洲欧洲aⅴ| 亚洲国产精品无码久久一线 | 亚洲中文字幕无码久久精品1| 久久久久国产亚洲AV麻豆| 国产亚洲色婷婷久久99精品91| 免费观看成人久久网免费观看| 久久国产精品无码HDAV| 久久香综合精品久久伊人| 久久精品中文无码资源站| 麻豆AV一区二区三区久久| 无码人妻久久一区二区三区免费丨|