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

有帮助吗?

解决方案

在C和C ++中,单引号标识一个字符,而双引号会创建字符串文字。 'a' 是一个字符字的人,而 "a" 是字符串字面包含一个 'a' 和一个空终结器(即2个字符阵列)。

在C ++中,字符的类型是 char, ,但是请注意,在C中,字符的类型是 int, , 那是 sizeof 'a' 在ints为32位(和char_bit是8)的架构中为4,而 sizeof(char) 到处都是1个。

其他提示

一些编译器还实施了允许多字符常数的扩展程序。 C99标准说:

6.4.4.4p10:“包含多个字符(例如'ab')的整数字符常数的值,或包含未映射到单字节执行字符的字符或逃生序列的值,已实现定义。 “

例如,这可能是这样的:

const uint32_t png_ihdr = 'IHDR';

由此产生的常数(在GCC中,实现此目的)具有您获得的值,通过取每个字符并将其移动来,因此“我”最终位于32位值的最重要位置。显然,如果您正在编写平台独立代码,则不应依靠这一点。

单引号是字符(char),双引号为无效的字符串(char *).

char c = 'x';
char *s = "Hello World";
  • 'x' 是一个整数,代表机器字符集中字母x的数值
  • "x" 是一系列字符,两个字符长,由 ‘x’ 其次是 ‘\0’

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

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

我在围绕:int cc ='cc'的东西戳;碰巧的是,它基本上是一个字节副本到整数。因此,查看它的方法是,基本上是2 C的“ CC”被复制到整数CC的较低2个字节。如果您正在寻找琐事,那么

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

99 25443

那是因为25443 = 99 + 256*99

因此,“ CC”是一个多字符常数, 不是 字符串。

干杯

  1. single quotecharacter;
  2. double quotestring.

双引号是针对字符串文字的,例如:

char str[] = "Hello world";

单引号是针对单个字符文字的,例如:

char c = 'x';

编辑 正如大卫在另一个答案中所说的那样,角色字面的类型是 int.

在c诸如“ a”之类的c单引号中表示字符常数,而“ a”是字符数组,总是以0个字符终止

单引号用于字符,双引号用于字符串。

例如..

 printf("%c \n",'a');
 printf("%s","Hello World");

输出

一个你好的世界

如果您反之亦然地使用它们,并使用单引号表示字符串,使用双引号表示字符。在这里,这将是结果;

  printf("%c \n","a");
  printf("%s",'Hello World');

输出 :

对于第一行。您将有垃圾值或意外值。或者您可能有这样的输出..

while 对于第二个声明。你什么也看不到。还有一件事。如果您在此之后还有更多的发言。他们也不会给你任何结果。

笔记 :PHP 语言使您可以灵活地轻松使用单引号和双引号。

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

在Java中,也是一样的。

使用单个字符的单个报价为:

char ch = 'a';

这里 'a' 是一个char常数,等于 ASCII char a的价值。

将双引号与字符串一起使用:

char str[] = "foo";

这里 "foo" 是字符串字面。

可以使用 "a" 但是使用不可行foo'

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top