在C或c++编程中什么时候应该使用单引号和双引号?
当前回答
一些编译器还实现了一个扩展,允许多字符常量。C99标准说:
6.4.4.4p10:“包含更多的整数字符常量的值 多于一个字符(如'ab'),或 包含一个字符或转义 不映射到 单字节执行字符,是 实现定义。”
例如,它可能是这样的:
const uint32_t png_ihdr = 'IHDR';
得到的常量(在GCC中,实现了这一点)的值是通过取每个字符并向上移动它来获得的,这样'I'就会位于32位值的最高位。显然,如果您正在编写与平台无关的代码,就不应该依赖于此。
其他回答
双引号用于字符串字面量,例如:
char str[] = "Hello world";
单引号用于单字符字面量,例如:
char c = 'x';
正如David在另一个回答中所述,字符字面量的类型是int。
单引号用于单个字符。双引号用于字符串(字符数组)。如果您愿意,可以使用单引号一次一个字符地构建字符串。
char myChar = 'A';
char myString[] = "Hello Mum";
char myOtherString[] = { 'H','e','l','l','o','\0' };
单引号用于字符,双引号用于字符串。
例如……
printf("%c \n",'a');
printf("%s","Hello World");
输出
a
Hello World
如果你在相反的情况下使用这些,并使用单引号字符串和双引号字符,这将是结果:
printf("%c \n","a");
printf("%s",'Hello World');
输出:
对于第一行。你将得到一个垃圾值或意外值,或者你可能得到这样的输出:
�
而对于第二个表述,你什么都看不到。还有一件事,如果你在这之后有更多的语句,它们也不会给你任何结果。
注意:PHP语言为您提供了轻松使用单引号和双引号的灵活性。
单引号是字符(char),双引号是空结束的字符串(char *)。
char c = 'x';
char *s = "Hello World";
'x'是一个整数,表示的数值 机器字符集中的字母x “x”是一个字符数组,长度为两个字符, 由' x '和' \0 '组成