C语言 单引号和双引号的区别

笔者在编写C时,使用以下语句时出错:

char *string= 'aaabbbcc';

出错原因是[Error] invalid conversion from 'int' to 'char*' [-fpermissive]
意思是从intchar * 是非法的转换,这就意味着后面的字符串被程序认定为int型,实际上就是单引号和双引号的使用区别造成了这个错误。


不同之处

1、含义不同

用单引号引起的一个字符实际上代表一个整数,整数值对应于该字符在编译器采用的字符集中的序列值。而一般我们的编译器采用的都是ASCII字符集。因此's'的含义其实和十进制数115的含义是一致的。

而用双引号引起的字符串,代表的是一个指向无名数组起始字符的指针。

2、大小不同

用单引号引起的一个字符大小就是一个字节。

而用双引号引起的字符串大小是字符的总大小+1,因为用双引号引起的字符串会在字符串末尾添加一个二进制为0的字符’\0’。

所以要将单引号修改为双引号才可以编译通过!

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