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


当前回答

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

char str[] = "Hello world";

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

char c = 'x';

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

其他回答

在C和c++中,单引号被称为字符('a'),而双引号被称为字符串("Hello")。不同的是,一个字符可以存储任何东西,但只能存储一个字母/数字等。字符串可以存储任何东西。 但也要记住,“1”和“1”之间是有区别的。 如果你输入 cout < < ' 1 ' < < endl < < 1; 输出将是相同的,但不是在这种情况下:

cout<<int('1')<<endl<<int(1);

这次第一行是48。当你将一个字符转换为int型时,它会转换为它的ascii码,'1'的ascii码是48。 同样,如果你这样做:

string s="Hi";
s+=48; //This will add "1" to the string
s+="1"; This will also add "1" to the string

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

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

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

在C语言中,单引号(如'a')表示字符常量,而"a"是字符数组,总是以\0字符结束

虽然我确信这并没有回答最初的提问者所问的问题,万一你最终在这里寻找文字整数中的单引号,就像我有……

c++ 14增加了在数字文字中间添加单引号(')的功能,以便为数字添加一些可视分组。

constexpr int oneBillion = 1'000'000'000;
constexpr int binary = 0b1010'0101;
constexpr int hex = 0x12'34'5678;
constexpr double pi = 3.1415926535'8979323846'2643383279'5028841971'6939937510;