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无码久久久久久不卡网站
|
国产福利电影一区二区三区久久久久成人精品综合
|
无码精品久久一区二区三区
|
久久强奷乱码老熟女网站
|
丁香五月网久久综合
|
亚洲午夜精品久久久久久app
|
久久久免费精品re6
|
久久强奷乱码老熟女网站
|
久久久久久无码Av成人影院
|
欧美性大战久久久久久
|
91精品国产色综合久久
|
一本色道久久99一综合
|
久久久久久久久久久免费精品
|
久久久精品2019免费观看
|
一本一道久久a久久精品综合
|
久久青青色综合
|
四虎国产精品免费久久5151
|
亚洲AV无码久久
|
久久精品日日躁夜夜躁欧美
|
欧美久久久久久午夜精品
|
狠狠干狠狠久久
|
狠狠色丁香婷婷综合久久来
|
奇米影视7777久久精品
|
日韩人妻无码一区二区三区久久99
|
国产成人香蕉久久久久
|
久久99精品国产麻豆婷婷
|
国产V亚洲V天堂无码久久久
|
国产成人无码精品久久久性色
|
很黄很污的网站久久mimi色
|
久久综合久久综合久久
|
久久国产精品成人影院
|
亚洲AV日韩AV永久无码久久
|
久久久久久国产精品美女
|
日本WV一本一道久久香蕉
|
伊人久久一区二区三区无码
|
一本大道久久东京热无码AV
|
中文字幕一区二区三区久久网站
|