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
古月
閱讀(5574)
評論(0)
編輯
收藏
引用
只有注冊用戶
登錄
后才能發表評論。
【推薦】100%開源!大型工業跨平臺軟件C++源碼提供,建模,組態!
網站導航:
博客園
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
導航
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++中的類模板詳細講述,非常詳細不錯
搜索
積分與排名
積分 - 51993
排名 - 439
最新評論
1.?re: 病狗
評論內容較長,點擊標題查看
--胡濤錦
2.?re: 最近很火的50只狗,有好狗有病狗,去判斷有幾只病狗的的邏輯推理題目
你的這個解釋沒有看明白,為什么第一天大家都沒有殺狗,自己的狗就是病狗呢@開心
--古月
3.?re: 最近很火的50只狗,有好狗有病狗,去判斷有幾只病狗的的邏輯推理題目
做這問題,肯定是要假設狗主人都是頭腦清楚的,知道什么時候該殺狗,否則題目沒有做了@chen sir
--古月
4.?re: 最近很火的50只狗,有好狗有病狗,去判斷有幾只病狗的的邏輯推理題目
評論內容較長,點擊標題查看
--chen sir
5.?re: 最近很火的50只狗,有好狗有病狗,去判斷有幾只病狗的的邏輯推理題目
第一天大家都看到49只病狗,說明除自己的狗,其他人全部都是病狗,第一天大家都沒有殺狗,說明自己的狗也是病狗,第二天就應該殺50條狗!@古月
--開心
閱讀排行榜
1.?最近很火的50只狗,有好狗有病狗,去判斷有幾只病狗的的邏輯推理題目(13219)
2.?用數學來推導趣味邏輯題:騎士與流氓問題。(5465)
3.?鄙人這輩子編寫的第一個游戲程序:猜拳! 好激動,共享下c++源代碼(3961)
4.?再談下聲明、定義、初始化、賦值和extern(3738)
5.?fopen函數的使用的幾種方式(3297)
評論排行榜
1.?最近很火的50只狗,有好狗有病狗,去判斷有幾只病狗的的邏輯推理題目(11)
2.?鄙人這輩子編寫的第一個游戲程序:猜拳! 好激動,共享下c++源代碼(7)
3.?用數學來推導趣味邏輯題:騎士與流氓問題。(3)
4.?邏輯推理:在一個100條語句的列表中,第n條語句是“在這個列表中,恰有n條語句為假”,可以得出什么結論?(0)
5.?c++中explict關鍵字的說明和使用(0)
久久婷婷五月综合色高清
|
久久综合精品国产一区二区三区
|
亚洲AV无码一区东京热久久
|
久久国产精品-久久精品
|
亚洲国产成人精品女人久久久
|
国产精品一区二区久久精品涩爱
|
国产69精品久久久久777
|
亚洲一区中文字幕久久
|
欧美亚洲国产精品久久
|
麻豆精品久久精品色综合
|
麻豆精品久久久久久久99蜜桃
|
无码国内精品久久人妻麻豆按摩
|
99久久免费国产精品特黄
|
国产综合久久久久
|
久久久久久亚洲精品影院
|
99久久免费国产精品
|
久久精品亚洲中文字幕无码麻豆
|
久久人人爽人人爽人人片AV东京热
|
天天影视色香欲综合久久
|
97热久久免费频精品99
|
少妇高潮惨叫久久久久久
|
久久久国产亚洲精品
|
久久亚洲综合色一区二区三区
|
三上悠亚久久精品
|
亚洲精品国精品久久99热一
|
伊人色综合久久天天网
|
亚洲精品无码久久久
|
热RE99久久精品国产66热
|
国产成人久久久精品二区三区
|
久久久久高潮毛片免费全部播放
|
少妇无套内谢久久久久
|
亚洲国产婷婷香蕉久久久久久
|
久久精品国产亚洲AV不卡
|
久久99精品久久久久久不卡
|
性色欲网站人妻丰满中文久久不卡
|
久久精品中文字幕一区
|
久久久久久国产精品免费免费
|
久久99精品久久久久久水蜜桃
|
久久久99精品成人片中文字幕
|
精品国产综合区久久久久久
|
久久93精品国产91久久综合
|