代码之家  ›  专栏  ›  技术社区  ›  Vishwanath Dalvi

C或C++中的单引号与双引号

  •  174
  • Vishwanath Dalvi  · 技术社区  · 15 年前

    在C或C++编程中,我应该何时使用单引号和双引号?

    12 回复  |  直到 9 年前
        1
  •  311
  •   Antti Haapala -- Слава Україні    7 年前

    在C和C++中,单引号标识单个字符,而双引号创建字符串文字。 'a' "a" 是包含 “a” 和空终止符(即2字符数组)。

    在C++中,字符文字的类型是 char int ,即 sizeof 'a' 在Int为32位(CHAR\位为8)的体系结构中为4,而 sizeof(char) 到处都是1。

        2
  •  50
  •   FractalSpace    9 年前

    一些编译器还实现了一个扩展,允许多字符常量。C99标准规定:

    多于一个字符(如“ab”),或 包含字符或转义符的 单字节执行字符,是

    例如,可以这样:

    const uint32_t png_ihdr = 'IHDR';
    

    结果常量(在GCC中,它实现了这一点)的值是通过获取每个字符并将其上移得到的,因此“I”最终位于32位值的最高有效位。显然,如果您正在编写与平台无关的代码,就不应该依赖于此。

        3
  •  30
  •   Eiko    15 年前

    单引号是字符( char ),双引号是以null结尾的字符串( char *

    char c = 'x';
    char *s = "Hello World";
    
        4
  •  19
  •   martynas    12 年前
    • 'x' 是一个整数,表示
    • "x" 包括 ‘x’ 然后 ‘\0’
        5
  •  12
  •   Xantium    8 年前

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

    99 25443

    那是因为25443=99+256*99

        6
  •  10
  •   Graham Borland    15 年前

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

    char myChar     = 'A';
    char myString[] = "Hello Mum";
    char myOtherString[] = { 'H','e','l','l','o','\0' };
    
        7
  •  8
  •   Vishwanath Dalvi    14 年前
    1. single quote 是为 character ;
    2. double quote 是为 string
        8
  •  7
  •   Sabito Greg    5 年前

    在C语言中,单引号如 'a' "a" 是一个字符数组,总是以 \0

        9
  •  6
  •   Oliver Charlesworth    15 年前

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

    char str[] = "Hello world";
    

    单引号用于单字符文字,例如:

    char c = 'x';
    

    编辑 正如David在另一个答案中所说,字符的类型是 int .

        10
  •  5
  •   Sabito Greg    5 年前

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

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

    输出

    a  
    Hello World
    

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

    输出:

    第一行。您将得到一个垃圾值或意外值,或者您可能会得到如下输出:

    �
    

    注意:PHP语言提供了使用单引号和双引号的灵活性。

        11
  •  2
  •   codaddict    15 年前

    使用单引号和单字符作为:

    char ch = 'a';
    

    'a' 是char常量,等于 ASCII

    使用带字符串的双引号作为:

    char str[] = "foo";
    

    在这里 "foo"

    可以使用 "a" foo'

        12
  •  2
  •   Peter Mortensen Pieter Jan Bonestroo    11 年前

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

    在Java中,也是一样的。

        13
  •  0
  •   Karioton Studios    5 年前

    但也要记住“1”和“1”之间是有区别的。 不能<<'1'<<结束<<1;

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

    这次第一行是48。当你把一个字符转换成一个整数时,它会转换成它的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