C語言雙引號是什么類型?
最近的C語言課在教字符串,貌似N多同學搞不清楚單引號和雙引號的區別,有人還以為在C語言里用哪個都可以...其實C語言中的單引號和雙引號含義是一點也不一樣滴...看別人講指針與數組時也有點弄不清sizeof一個雙引號括起來的數組竟然值會+1:如
char a[]="123456";
sizeof(a)的值為7
1、含義不同。
用單引號引起的一個字符實際上代表一個整數,整數值對應于該字符在編譯器采用的字符集中的序列值。而一般我們的編譯器采用的都是ASCII字符集。因此's'的含義其實和十進制數115的含義是一致的。
而用雙引號引起的字符串,代表的是一個指向無名數組起始字符的指針。
2、大小不同。
用單引號引起的一個字符大小就是一個字節。
而用雙引號引起的字符串大小是字符的總大小+1,因為用雙引號引起的字符串會在字符串末尾添加一個二進制為0的字符'\0'。