gujiayue
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ā)表評論。
【推薦】100%開源!大型工業(yè)跨平臺軟件C++源碼提供,建模,組態(tài)!
網(wǎng)站導(dǎo)航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
Powered by:
C++博客
Copyright © 古月
<
2025年7月
>
日
一
二
三
四
五
六
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
導(dǎo)航
C++博客
首頁
新隨筆
聯(lián)系
聚合
管理
統(tǒng)計(jì)
隨筆 - 24
文章 - 3
評論 - 22
引用 - 0
常用鏈接
我的隨筆
我的評論
我參與的隨筆
留言簿
給我留言
查看公開留言
查看私人留言
隨筆分類
C/C++(9)
(rss)
Linux(2)
(rss)
非技術(shù)類(1)
(rss)
離散數(shù)學(xué)及其應(yīng)用(3)
(rss)
隨筆檔案
2016年5月 (2)
2014年7月 (1)
2012年9月 (3)
2012年6月 (1)
2012年5月 (1)
2012年1月 (1)
2011年12月 (2)
2011年10月 (2)
2011年9月 (2)
2011年6月 (7)
2011年5月 (2)
文章檔案
2010年11月 (3)
C++/C
C++編程對緩沖區(qū)的理解
本文介紹的是C++中緩沖區(qū)的基本知識,包括概念、類型和一些針對性的例子,希望對大家有幫助,一起來看。
C++命名空間解釋
對命名空間一個(gè)很好的解釋
C++中的類模板詳細(xì)講述
C++中的類模板詳細(xì)講述,非常詳細(xì)不錯
搜索
積分與排名
積分 - 51977
排名 - 439
最新評論
1.?re: 病狗
評論內(nèi)容較長,點(diǎn)擊標(biāo)題查看
--胡濤錦
2.?re: 最近很火的50只狗,有好狗有病狗,去判斷有幾只病狗的的邏輯推理題目
你的這個(gè)解釋沒有看明白,為什么第一天大家都沒有殺狗,自己的狗就是病狗呢@開心
--古月
3.?re: 最近很火的50只狗,有好狗有病狗,去判斷有幾只病狗的的邏輯推理題目
做這問題,肯定是要假設(shè)狗主人都是頭腦清楚的,知道什么時(shí)候該殺狗,否則題目沒有做了@chen sir
--古月
4.?re: 最近很火的50只狗,有好狗有病狗,去判斷有幾只病狗的的邏輯推理題目
評論內(nèi)容較長,點(diǎn)擊標(biāo)題查看
--chen sir
5.?re: 最近很火的50只狗,有好狗有病狗,去判斷有幾只病狗的的邏輯推理題目
第一天大家都看到49只病狗,說明除自己的狗,其他人全部都是病狗,第一天大家都沒有殺狗,說明自己的狗也是病狗,第二天就應(yīng)該殺50條狗!@古月
--開心
閱讀排行榜
1.?最近很火的50只狗,有好狗有病狗,去判斷有幾只病狗的的邏輯推理題目(13218)
2.?用數(shù)學(xué)來推導(dǎo)趣味邏輯題:騎士與流氓問題。(5465)
3.?鄙人這輩子編寫的第一個(gè)游戲程序:猜拳! 好激動,共享下c++源代碼(3961)
4.?再談下聲明、定義、初始化、賦值和extern(3737)
5.?fopen函數(shù)的使用的幾種方式(3296)
評論排行榜
1.?最近很火的50只狗,有好狗有病狗,去判斷有幾只病狗的的邏輯推理題目(11)
2.?鄙人這輩子編寫的第一個(gè)游戲程序:猜拳! 好激動,共享下c++源代碼(7)
3.?用數(shù)學(xué)來推導(dǎo)趣味邏輯題:騎士與流氓問題。(3)
4.?邏輯推理:在一個(gè)100條語句的列表中,第n條語句是“在這個(gè)列表中,恰有n條語句為假”,可以得出什么結(jié)論?(0)
5.?c++中explict關(guān)鍵字的說明和使用(0)
青青草原1769久久免费播放
|
久久综合给合久久狠狠狠97色
|
潮喷大喷水系列无码久久精品
|
国产情侣久久久久aⅴ免费
|
AV狠狠色丁香婷婷综合久久
|
久久青草国产手机看片福利盒子
|
精品久久综合1区2区3区激情
|
久久亚洲色一区二区三区
|
免费精品久久天干天干
|
人妻无码久久一区二区三区免费
|
精品永久久福利一区二区
|
99久久这里只有精品
|
武侠古典久久婷婷狼人伊人
|
性做久久久久久久
|
狠狠色综合网站久久久久久久
|
一本一道久久综合狠狠老
|
91久久精品无码一区二区毛片
|
久久精品国产亚洲av麻豆蜜芽
|
99久久精品费精品国产一区二区
|
久久99热精品
|
狠狠色丁香婷婷久久综合
|
国产一级做a爰片久久毛片
|
亚洲国产成人精品无码久久久久久综合
|
少妇久久久久久被弄到高潮
|
国产精品久久久久久福利69堂
|
久久只有这精品99
|
久久久久久久久久久免费精品
|
欧美久久综合性欧美
|
亚洲国产另类久久久精品小说
|
亚洲精品无码久久不卡
|
久久久久久a亚洲欧洲aⅴ
|
亚洲国产精品无码久久一线
|
亚洲中文字幕无码久久精品1
|
久久久久国产亚洲AV麻豆
|
国产亚洲色婷婷久久99精品91
|
免费观看成人久久网免费观看
|
久久国产精品无码HDAV
|
久久香综合精品久久伊人
|
久久精品中文无码资源站
|
麻豆AV一区二区三区久久
|
无码人妻久久一区二区三区免费丨
|