在C或c++编程中什么时候应该使用单引号和双引号?
当前回答
我到处乱戳,比如:int cc = 'cc';它基本上是按字节顺序复制到一个整数。因此,看待它的方式是'cc',基本上是2个c被复制到整数cc的低2个字节。如果你正在寻找一个琐事,那么
printf("%d %d", 'c', 'cc'); would give:
99 25443
这是因为25443 = 99 + 256*99
所以“cc”是一个多字符常量,而不是字符串。
干杯
其他回答
双引号用于字符串字面量,例如:
char str[] = "Hello world";
单引号用于单字符字面量,例如:
char c = 'x';
正如David在另一个回答中所述,字符字面量的类型是int。
在C语言中,单引号(如'a')表示字符常量,而"a"是字符数组,总是以\0字符结束
在C和c++中,单引号标识单个字符,而双引号创建字符串字面量。'a'是一个单独的a字符文字,而"a"是一个包含'a'和空终止符的字符串文字(这是一个2字符数组)。
在c++中,字符字面值的类型是char,但请注意,在C中,字符字面值的类型是int,即sizeof 'a'在一个int为32位的体系结构中是4(而CHAR_BIT为8),而sizeof(char)在任何地方都是1。
单引号是字符(char),双引号是空结束的字符串(char *)。
char c = 'x';
char *s = "Hello World";
单引号用于单个字符。双引号用于字符串(字符数组)。如果您愿意,可以使用单引号一次一个字符地构建字符串。
char myChar = 'A';
char myString[] = "Hello Mum";
char myOtherString[] = { 'H','e','l','l','o','\0' };