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

筆者在編寫C時,使用以下語句時出錯:

char *string= 'aaabbbcc';

出錯原因是[Error] invalid conversion from 'int' to 'char*' [-fpermissive]
意思是從intchar * 是非法的轉換,這就意味着後面的字符串被程序認定爲int型,實際上就是單引號和雙引號的使用區別造成了這個錯誤。


不同之處

1、含義不同

用單引號引起的一個字符實際上代表一個整數,整數值對應於該字符在編譯器採用的字符集中的序列值。而一般我們的編譯器採用的都是ASCII字符集。因此's'的含義其實和十進制數115的含義是一致的。

而用雙引號引起的字符串,代表的是一個指向無名數組起始字符的指針。

2、大小不同

用單引號引起的一個字符大小就是一個字節。

而用雙引號引起的字符串大小是字符的總大小+1,因爲用雙引號引起的字符串會在字符串末尾添加一個二進制爲0的字符’\0’。

所以要將單引號修改爲雙引號纔可以編譯通過!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章