C語言中的單引號和雙引號的區別

2021-09-02 23:07:42 字數 1190 閱讀 9635

1、實質區別,代表的含義不同

'a'代表的是乙個整數,而且這個整數對應的是編譯器所採用的字符集中的字串行對應的數值。所以'a'跟ascii中的65意義是相同的。

2、占用的記憶體空間大小不同

1 # include 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大家猜一猜輸出的str1的大小是多少?str2輸出的大小是多少?

不用猜了,為啥,因為編譯不了啊。怎麼會編譯不了?因為編譯器報錯了。

看出了因為啥了嗎?我英文差,估計應該是說第9行,定義的乙個位元組存不下,建議你定義兩個位元組,就是char str2[2]來存放"a"。明明"a"應該占用乙個位元組啊?為啥要給他分配兩個位元組的空間呢?

因為這裡系統會在字串的尾端預設新增乙個二進位制為0的字元'\0',其實它就是乙個轉義字元。

C語言中單引號和雙引號

寫慣了python對單引號和雙引號都混了。c語言中的單引號和雙引號含義迥異,用單引號引起的乙個字元實際上代表乙個整數,整數值對應於該字元在編譯器採用的字符集中的序列值,因此,採用ascii字符集的編譯器而言,a 的含義與0141或97嚴格一致。而用雙引號引起的字串,代表的卻是乙個指向無名陣列起始字元...

C語言中雙引號與單引號的區別

1 含義不同。用單引號引起的乙個字元實際上代表乙個整數,整數值對應於該字元在編譯器採用的字符集中的序列值。而一般我們的編譯器採用的都是ascii字符集。因此 s 的含義其實和十進位制數115的含義是一致的。而用雙引號引起的字串,代表的是乙個指向無名陣列起始字元的指標。例如 分別檢視 yes yes ...

C語言 單引號和雙引號的區別

最近的c語言課在教字串,貌似n多同學搞不清楚單引號和雙引號的區別,有人還以為在c語言裡用哪個都可以.其實c語言中的單引號和雙引號含義是一點也不一樣滴.1 含義不同。用單引號引起的乙個字元實際上代表乙個整數,整數值對應於該字元在編譯器採用的字符集中的序列值。而一般我們的編譯器採用的都是ascii字符集...