gujiayue
C++中char和int型變量的一點(diǎn)心得
字符字面值一般是用一對(duì)單引號(hào)來表示。char類型一般就是用字符字面值來初始化、賦值。由于char類型的是單字節(jié)長(zhǎng)度,當(dāng)給char類型的變量用字符字面值賦值時(shí),當(dāng)單引號(hào)里面的內(nèi)容超過一個(gè)字節(jié)時(shí),系統(tǒng)會(huì)自動(dòng)截取一個(gè)字節(jié)的內(nèi)容給char變量,忽略其他的字節(jié)內(nèi)容。
比如char a='1234';c++會(huì)認(rèn)為單引號(hào)里的每一個(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平臺(tái)(
http://baike.baidu.com/view/339142.htm
)上,數(shù)據(jù)是以little-endian(
再如:char b='啊';由于一個(gè)漢字是雙字節(jié)的,系統(tǒng)會(huì)截取其中一個(gè)字節(jié)給char,但鬼才知道截取的那個(gè)字節(jié)是什么,所以cout<<b時(shí)會(huì)出現(xiàn)亂碼。
當(dāng)給char變量賦值正確的用ASII表中的字符,比如char c='!',單引號(hào)里面的內(nèi)容是什么,cout就會(huì)輸出什么。
當(dāng)給char變量用一個(gè)整形字面字初始化時(shí),比如char d=55,這時(shí)系統(tǒng)會(huì)根據(jù)在ASII表中這個(gè)整型值代表的控制字符是什么,就會(huì)輸入什么,比如在ASii表中55是'7'的ASII值,cout<<d;的結(jié)果就是7。char對(duì)應(yīng)ascii值如果是可顯示字符就可以輸出來,如果是不可顯示字符,就輸不出來.就好像0x0D和0x0A它們分別表于回車符和換行符,但是在它們本身沒有一個(gè)形狀能表示這些字符得,就沒辦法顯示出來了.
然而ASCII表中只有0到127這128種,如果當(dāng)大于127的整數(shù)甚至是大于255給char時(shí),系統(tǒng)的運(yùn)行結(jié)果未知。
字符串字面值,也就是雙引號(hào)來定義的,一般稱作為c風(fēng)格字符串,他的類型應(yīng)該是char*,所以char e="t";是會(huì)發(fā)生編譯錯(cuò)誤的。
對(duì)于int變量,int f=10;自然是正確的,這不用多解釋了。然而如果把一個(gè)字符字面值給int,如int g='a',會(huì)把字符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)
評(píng)論(0)
編輯
收藏
引用
只有注冊(cè)用戶
登錄
后才能發(fā)表評(píng)論。
【推薦】100%開源!大型工業(yè)跨平臺(tái)軟件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
評(píng)論 - 22
引用 - 0
常用鏈接
我的隨筆
我的評(píng)論
我參與的隨筆
留言簿
給我留言
查看公開留言
查看私人留言
隨筆分類
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++編程對(duì)緩沖區(qū)的理解
本文介紹的是C++中緩沖區(qū)的基本知識(shí),包括概念、類型和一些針對(duì)性的例子,希望對(duì)大家有幫助,一起來看。
C++命名空間解釋
對(duì)命名空間一個(gè)很好的解釋
C++中的類模板詳細(xì)講述
C++中的類模板詳細(xì)講述,非常詳細(xì)不錯(cuò)
搜索
積分與排名
積分 - 51970
排名 - 439
最新評(píng)論
1.?re: 病狗
評(píng)論內(nèi)容較長(zhǎng),點(diǎn)擊標(biāo)題查看
--胡濤錦
2.?re: 最近很火的50只狗,有好狗有病狗,去判斷有幾只病狗的的邏輯推理題目
你的這個(gè)解釋沒有看明白,為什么第一天大家都沒有殺狗,自己的狗就是病狗呢@開心
--古月
3.?re: 最近很火的50只狗,有好狗有病狗,去判斷有幾只病狗的的邏輯推理題目
做這問題,肯定是要假設(shè)狗主人都是頭腦清楚的,知道什么時(shí)候該殺狗,否則題目沒有做了@chen sir
--古月
4.?re: 最近很火的50只狗,有好狗有病狗,去判斷有幾只病狗的的邏輯推理題目
評(píng)論內(nèi)容較長(zhǎng),點(diǎn)擊標(biāo)題查看
--chen sir
5.?re: 最近很火的50只狗,有好狗有病狗,去判斷有幾只病狗的的邏輯推理題目
第一天大家都看到49只病狗,說明除自己的狗,其他人全部都是病狗,第一天大家都沒有殺狗,說明自己的狗也是病狗,第二天就應(yīng)該殺50條狗!@古月
--開心
閱讀排行榜
1.?最近很火的50只狗,有好狗有病狗,去判斷有幾只病狗的的邏輯推理題目(13217)
2.?用數(shù)學(xué)來推導(dǎo)趣味邏輯題:騎士與流氓問題。(5465)
3.?鄙人這輩子編寫的第一個(gè)游戲程序:猜拳! 好激動(dòng),共享下c++源代碼(3961)
4.?再談下聲明、定義、初始化、賦值和extern(3737)
5.?fopen函數(shù)的使用的幾種方式(3296)
評(píng)論排行榜
1.?最近很火的50只狗,有好狗有病狗,去判斷有幾只病狗的的邏輯推理題目(11)
2.?鄙人這輩子編寫的第一個(gè)游戲程序:猜拳! 好激動(dòng),共享下c++源代碼(7)
3.?用數(shù)學(xué)來推導(dǎo)趣味邏輯題:騎士與流氓問題。(3)
4.?邏輯推理:在一個(gè)100條語句的列表中,第n條語句是“在這個(gè)列表中,恰有n條語句為假”,可以得出什么結(jié)論?(0)
5.?c++中explict關(guān)鍵字的說明和使用(0)
久久精品麻豆日日躁夜夜躁
|
亚洲一级Av无码毛片久久精品
|
亚洲国产另类久久久精品黑人
|
性欧美大战久久久久久久久
|
久久精品aⅴ无码中文字字幕重口 久久精品a亚洲国产v高清不卡
|
91麻精品国产91久久久久
|
久久综合九色综合久99
|
亚洲国产精品成人AV无码久久综合影院
|
97精品伊人久久大香线蕉
|
久久午夜无码鲁丝片
|
久久久噜噜噜久久
|
久久精品国产第一区二区三区
|
久久综合伊人77777
|
精品国际久久久久999波多野
|
99热热久久这里只有精品68
|
色综合久久无码五十路人妻
|
国产精品伦理久久久久久
|
一本色道久久88精品综合
|
久久精品国产黑森林
|
久久国产精品成人影院
|
人人妻久久人人澡人人爽人人精品
|
久久国产精品一区二区
|
囯产极品美女高潮无套久久久
|
精品国产青草久久久久福利
|
日韩精品久久久久久久电影
|
久久久精品一区二区三区
|
亚洲精品高清国产一线久久
|
亚洲国产成人久久精品99
|
国产精品成人久久久久三级午夜电影
|
久久夜色精品国产网站
|
国内精品久久久久久久久电影网
|
午夜久久久久久禁播电影
|
久久亚洲国产精品123区
|
91精品免费久久久久久久久
|
国产精品久久久久9999高清
|
久久天天躁狠狠躁夜夜avapp
|
久久久久亚洲精品天堂
|
性做久久久久久久
|
2021久久国自产拍精品
|
日本三级久久网
|
国产精品无码久久四虎
|