2 回答

TA貢獻(xiàn)86條經(jīng)驗(yàn) 獲得超114個(gè)贊
C語(yǔ)言中的單引號(hào)和雙引號(hào)的區(qū)別
首先肯定地說(shuō),二者是有區(qū)別的,不是說(shuō)用誰(shuí)都一樣。
1、實(shí)質(zhì)區(qū)別,代表的含義不同
'A'代表的是一個(gè)整數(shù),而且這個(gè)整數(shù)對(duì)應(yīng)的是編譯器所采用的字符集中的字符序列對(duì)應(yīng)的數(shù)值。所以'A'跟ASCII中的65意義是相同的。
2、占用的內(nèi)存空間大小不同
1?#?include?<iostream>? 2?? 3?using?namespace?std;? 4?? 5?int?main(int?argc,?char?const?*argv[])? 6?{? 7?????char?str1?=?'A';? 8?? 9?????char?str2?=?"A"; 10? 11?????cout<<sizeof(str1)<<endl<<sizeof(str2)<<endl; 12? 13?????return?0; 14?}
大家猜一猜輸出的str1的大小是多少?str2輸出的大小是多少?
????????????????????????????
不用猜了,為啥,因?yàn)榫幾g不了啊。怎么會(huì)編譯不了?因?yàn)榫幾g器報(bào)錯(cuò)了。
看出了因?yàn)樯读藛幔课矣⑽牟?,估?jì)應(yīng)該是說(shuō)第9行,定義的一個(gè)字節(jié)存不下,建議你定義兩個(gè)字節(jié),就是char str2[2]來(lái)存放"A"。明明"A"應(yīng)該占用一個(gè)字節(jié)?。繛樯兑o他分配兩個(gè)字節(jié)的空間呢?
因?yàn)檫@里系統(tǒng)會(huì)在字符串的尾端默認(rèn)添加一個(gè)二進(jìn)制為0的字符'\0',其實(shí)它就是一個(gè)轉(zhuǎn)義字符。
- 2 回答
- 1 關(guān)注
- 2266 瀏覽
添加回答
舉報(bào)