提问者:小点点

C或C++中的单引号与双引号


什么时候应该在C或C++编程中使用单引号和双引号?


共3个答案

匿名用户

在C和C++中,单引号标识单个字符,而双引号创建字符串文本。 'a'是单个a字符文本,而“a”是包含'a'和空终止符(即2字符数组)的字符串文本。

在C++中,字符文本的类型是char,但请注意,在C中,字符文本的类型是int,也就是说,在int为32位(且CHAR_BIT为8)的体系结构中,sizeof'a'是4,而sizeof(char)在任何地方都是1。

匿名用户

有些编译器还实现了一个扩展,允许使用多字符常量。 C99标准规定:

6.4.4.4 p10:“包含一个以上字符(如'ab')的整数字符常量的值,或包含未映射到单字节执行字符的字符或转义序列的整数字符常量的值,由实现定义。”

例如,这可以是这样的:

const uint32_t png_ihdr = 'IHDR';

得到的常量(GCC中,它实现了这一点)的值是通过取每个字符并将其上移得到的,这样,“i”就以32位值的最高有效位结束。 显然,如果您正在编写与平台无关的代码,则不应该依赖于此。

匿名用户

单引号是字符(char),双引号是以空结尾的字符串(char*)。

char c = 'x';
char *s = "Hello World";

相关问题


MySQL Query : SELECT * FROM v9_ask_question WHERE 1=1 AND question regexp '(c|c++|中|单引号|双引号)' ORDER BY qid DESC LIMIT 20
MySQL Error : Got error 'repetition-operator operand invalid' from regexp
MySQL Errno : 1139
Message : Got error 'repetition-operator operand invalid' from regexp
Need Help?