gujiayue
C++中char和int型變量的一點心得
字符字面值一般是用一對單引號來表示。char類型一般就是用字符字面值來初始化、賦值。由于char類型的是單字節長度,當給char類型的變量用字符字面值賦值時,當單引號里面的內容超過一個字節時,系統會自動截取一個字節的內容給char變量,忽略其他的字節內容。
比如char a='1234';c++會認為單引號里的每一個數值都看做一個字符字面值,也就是說1 2 3 4各占一個字節,'1234'也就是一共占4個字節,然而char變量a只是占一個字節,初始化它的值卻有4個字節,系統要從'1234'中截取一個字節的內容給a,然而是截取'1'給a嗎?不是,是把'4'給a。因為在x86平臺(
http://baike.baidu.com/view/339142.htm
)上,數據是以little-endian(
再如:char b='啊';由于一個漢字是雙字節的,系統會截取其中一個字節給char,但鬼才知道截取的那個字節是什么,所以cout<<b時會出現亂碼。
當給char變量賦值正確的用ASII表中的字符,比如char c='!',單引號里面的內容是什么,cout就會輸出什么。
當給char變量用一個整形字面字初始化時,比如char d=55,這時系統會根據在ASII表中這個整型值代表的控制字符是什么,就會輸入什么,比如在ASii表中55是'7'的ASII值,cout<<d;的結果就是7。char對應ascii值如果是可顯示字符就可以輸出來,如果是不可顯示字符,就輸不出來.就好像0x0D和0x0A它們分別表于回車符和換行符,但是在它們本身沒有一個形狀能表示這些字符得,就沒辦法顯示出來了.
然而ASCII表中只有0到127這128種,如果當大于127的整數甚至是大于255給char時,系統的運行結果未知。
字符串字面值,也就是雙引號來定義的,一般稱作為c風格字符串,他的類型應該是char*,所以char e="t";是會發生編譯錯誤的。
對于int變量,int f=10;自然是正確的,這不用多解釋了。然而如果把一個字符字面值給int,如int g='a',會把字符a在ASCII表中的ASCII值(也就是97)給a,cout<<g;的結果就是97。
如果把一個多字符字面值給int,如int h='abc';cout<<h;的結果是6382179。這個就需要好好解釋下了,首先'a'的ASCII值是97,內存中占一個字節8位,就是01100001,b是01100010,c是01100011。由于int是32位的,不夠的位用0補齊,在存入內存時,a是高位所以存到高地址位,c是低位所以存到低地址位,四個字節從低地址到高地址依次是
01100011
01100010
01100001
00000000
讀取的時候跟存入的時候整好相反,先讀高地址位,然后低地址位,也就是00000000 01100001 01100010 01100011 這32位代表的十進制整型值整好是6382179。
以上有不少內容是我從CSDN論壇上各種高人回復的貼子里總結的,在此感謝他們。
posted on 2010-11-21 15:12
古月
閱讀(5570)
評論(0)
編輯
收藏
引用
只有注冊用戶
登錄
后才能發表評論。
【推薦】100%開源!大型工業跨平臺軟件C++源碼提供,建模,組態!
網站導航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
Powered by:
C++博客
Copyright © 古月
<
2011年6月
>
日
一
二
三
四
五
六
29
30
31
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
1
2
3
4
5
6
7
8
9
導航
C++博客
首頁
新隨筆
聯系
聚合
管理
統計
隨筆 - 24
文章 - 3
評論 - 22
引用 - 0
常用鏈接
我的隨筆
我的評論
我參與的隨筆
留言簿
給我留言
查看公開留言
查看私人留言
隨筆分類
C/C++(9)
(rss)
Linux(2)
(rss)
非技術類(1)
(rss)
離散數學及其應用(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++編程對緩沖區的理解
本文介紹的是C++中緩沖區的基本知識,包括概念、類型和一些針對性的例子,希望對大家有幫助,一起來看。
C++命名空間解釋
對命名空間一個很好的解釋
C++中的類模板詳細講述
C++中的類模板詳細講述,非常詳細不錯
搜索
積分與排名
積分 - 51710
排名 - 439
最新評論
1.?re: 病狗
評論內容較長,點擊標題查看
--胡濤錦
2.?re: 最近很火的50只狗,有好狗有病狗,去判斷有幾只病狗的的邏輯推理題目
你的這個解釋沒有看明白,為什么第一天大家都沒有殺狗,自己的狗就是病狗呢@開心
--古月
3.?re: 最近很火的50只狗,有好狗有病狗,去判斷有幾只病狗的的邏輯推理題目
做這問題,肯定是要假設狗主人都是頭腦清楚的,知道什么時候該殺狗,否則題目沒有做了@chen sir
--古月
4.?re: 最近很火的50只狗,有好狗有病狗,去判斷有幾只病狗的的邏輯推理題目
評論內容較長,點擊標題查看
--chen sir
5.?re: 最近很火的50只狗,有好狗有病狗,去判斷有幾只病狗的的邏輯推理題目
第一天大家都看到49只病狗,說明除自己的狗,其他人全部都是病狗,第一天大家都沒有殺狗,說明自己的狗也是病狗,第二天就應該殺50條狗!@古月
--開心
閱讀排行榜
1.?最近很火的50只狗,有好狗有病狗,去判斷有幾只病狗的的邏輯推理題目(13193)
2.?用數學來推導趣味邏輯題:騎士與流氓問題。(5431)
3.?鄙人這輩子編寫的第一個游戲程序:猜拳! 好激動,共享下c++源代碼(3946)
4.?再談下聲明、定義、初始化、賦值和extern(3727)
5.?fopen函數的使用的幾種方式(3290)
評論排行榜
1.?最近很火的50只狗,有好狗有病狗,去判斷有幾只病狗的的邏輯推理題目(11)
2.?鄙人這輩子編寫的第一個游戲程序:猜拳! 好激動,共享下c++源代碼(7)
3.?用數學來推導趣味邏輯題:騎士與流氓問題。(3)
4.?輸入輸出緩沖區和流的概念理解(0)
5.?好久不來cppblog,為什么現在網站人氣如此凋零!難道c++真的要滅亡了嗎?(0)
亚洲国产精品久久久久网站
|
国产成人精品久久
|
国产91久久综合
|
欧美精品丝袜久久久中文字幕
|
久久人人爽人人爽人人片av麻烦
|
久久久久国色AV免费看图片
|
无码AV中文字幕久久专区
|
色欲综合久久中文字幕网
|
97久久国产亚洲精品超碰热
|
久久噜噜久久久精品66
|
国产午夜精品理论片久久影视
|
97超级碰碰碰碰久久久久
|
久久综合日本熟妇
|
久久精品国产亚洲欧美
|
午夜久久久久久禁播电影
|
久久综合五月丁香久久激情
|
99国产欧美精品久久久蜜芽
|
中文字幕精品久久
|
久久综合九色综合久99
|
亚洲αv久久久噜噜噜噜噜
|
香蕉aa三级久久毛片
|
久久青草国产手机看片福利盒子
|
99久久国产免费福利
|
久久久久人妻精品一区二区三区
|
91久久精品国产91性色也
|
久久久老熟女一区二区三区
|
中文字幕精品无码久久久久久3D日动漫
|
日韩久久久久久中文人妻
|
色天使久久综合网天天
|
久久性生大片免费观看性
|
国产999精品久久久久久
|
欧美亚洲另类久久综合
|
久久精品国产99国产精偷
|
国产成人久久激情91
|
久久w5ww成w人免费
|
国产麻豆精品久久一二三
|
欧美黑人激情性久久
|
国内精品久久人妻互换
|
精品国产VA久久久久久久冰
|
久久精品成人免费国产片小草
|
久久香蕉国产线看观看精品yw
|