‘a’、“a”、‘abc’和“abc”的区别
1、‘a(chǎn)’:代表字符,用8個(gè)b存儲(chǔ)該字符的ASCII碼值,即97。
#include "stdafx.h" #include <iostream> using namespace std;int _tmain(int argc, _TCHAR* argv[]) {char c1 = 'a';char c2 = 97;char c3 = -97;char c4 = 129;char *p1 = &c1;char *p2 = &c2;char *p3 = &c3;cout<<"sizeof(c1) = "<<sizeof(c1)<<endl;cout<<c1<<endl;cout<<c2<<endl;cout<<c3<<endl;cout<<c4<<endl;cin.get();return 0; }
由上述代碼可知:
(1)給char型變量賦值時(shí),‘a(chǎn)’和其ASCII碼值97的結(jié)果是一樣的,都被翻譯成了‘a(chǎn)’。
(2)存儲(chǔ)于8個(gè)b的內(nèi)存塊。
(3)由于ASCII碼值是從1~128的,故給char型賦128以上的數(shù)或者小于1的數(shù),程序無(wú)法顯示。
(4)經(jīng)過調(diào)試,得到:
p1的值為0x002aff23;
p2的值為0x002aff17;
在內(nèi)存表中,這兩個(gè)值如下:
上圖中“61”是十六進(jìn)制,轉(zhuǎn)化為十進(jìn)制為97,故char型值在內(nèi)存中存儲(chǔ)的是其ASCII碼值。
2、“a”代表字符串,編譯器會(huì)自動(dòng)翻譯成“const char[2]”,其末尾會(huì)自動(dòng)加上’\0’,故其代表了字符數(shù)組!
3、‘a(chǎn)bc’:按理報(bào)錯(cuò),但是vs2010做了一些處理,實(shí)驗(yàn)結(jié)果如下:
(1)只取最后一個(gè)字符。
(2)字符數(shù)量有限制,只能是小于5個(gè),大于等于5都報(bào)錯(cuò)。
4、“abc”同理于“a”。
總結(jié)
以上是生活随笔為你收集整理的‘a’、“a”、‘abc’和“abc”的区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C中标识符和关键字
- 下一篇: L、TEXT()、_TEXT()和_T(