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


当前回答

单引号用于单个字符。双引号用于字符串(字符数组)。如果您愿意,可以使用单引号一次一个字符地构建字符串。

char myChar     = 'A';
char myString[] = "Hello Mum";
char myOtherString[] = { 'H','e','l','l','o','\0' };

其他回答

单引号表示字符,双引号表示字符串。

在Java中也是如此。

声明char / string的不同方法

char char_simple = 'a'; // bytes 1 : -128 to 127 or 0 to 255
signed char char_signed = 'a'; // bytes 1: -128 to 127
unsigned char char_u = 'a';  // bytes 2: 0 to 255

// double quote is for string.
char string_simple[] = "myString";
char string_simple_2[] = {'m', 'S', 't', 'r', 'i', 'n', 'g'};
char string_fixed_size[8] = "myString";
char *string_pointer = "myString"; 
char string_poionter_2 = *"myString";

printf("char = %ld\n", sizeof(char_simple));
printf("char_signed = %ld\n", sizeof(char_signed));
printf("char_u = %ld\n", sizeof(char_u));

printf("string_simple[] = %ld\n", sizeof(string_simple));
printf("string_simple_2[] = %ld\n", sizeof(string_simple_2));
printf("string_fixed_size[8] = %ld\n", sizeof(string_fixed_size));
printf("*string_pointer = %ld\n", sizeof(string_pointer));
printf("string_poionter_2 = %ld\n", sizeof(string_poionter_2));

单引号代表性格; 双引号是字符串。

双引号用于字符串字面量,例如:

char str[] = "Hello world";

单引号用于单字符字面量,例如:

char c = 'x';

正如David在另一个回答中所述,字符字面量的类型是int。

我到处乱戳,比如:int cc = 'cc';它基本上是按字节顺序复制到一个整数。因此,看待它的方式是'cc',基本上是2个c被复制到整数cc的低2个字节。如果你正在寻找一个琐事,那么

printf("%d %d", 'c', 'cc'); would give:

99 25443

这是因为25443 = 99 + 256*99

所以“cc”是一个多字符常量,而不是字符串。

干杯