首先吐槽一发。。。PHP写多了,平时单双引号也不怎么分,遇到变量名直接拼接字符串,酿成了恶果,造成C语言单双引号不区分。。
而C语言单双引号的区别还是很大的,符号用错很有可能造成编译不通过。例如:
char str1[] = "string";
char str = 's';
可以在编译器上试试,引号出现错误,比如 char str = "s"; ,g++编译器会返回错误:
[Error] invalid conversion from 'const char*' to 'char' [-fpermissive]
翻译过来就是本来是本来是char类型的变量,但是你赋值给的是const char*,编译器无法接受。
所以C语言中,双引号表示的是字符数组,在你给一个变量赋值时,用双引号进行赋值实质上是赋给了一个数组,而且C语言会自动帮你在数组后面添加一个 \0 ,表示字符串结束。数组不能赋值给char变量,否则无法编译。
单引号表示的是单个字符。可以赋给char变量。