Одинарные кавычки и двойные кавычки в C или C++


когда следует использовать одинарные и двойные кавычки в программировании на C или c++?

12 158

12 ответов:

в C и в C++ одинарные кавычки определяют один символ, в то время как двойные кавычки создают строковый литерал. 'a' - это одиночный символьный литерал, а "a" - строковый литерал, содержащий' a ' и нулевой Терминатор (то есть массив из 2 символов).

в C++ тип символьного литерала char, но обратите внимание, что в C тип символьного литерала int, что составляет sizeof 'a' это 4 в архитектуре, где ints 32bit (и CHAR_BIT 8), в то время как sizeof(char) is 1 повсюду.

некоторые компиляторы также реализуют расширение, которое позволяет использовать многосимвольные константы. Стандарт C99 гласит:

6.4.4. 4p10: "значение целочисленной символьной константы, содержащей больше чем один символ (например, 'ab'), или содержит символ или escape последовательность, которая не является однобайтовый символ выполнения, is реализация-определено."

Это может выглядеть так, например:

const uint32_t png_ihdr = 'IHDR';

в результате константа (в GCC, которая реализует это) имеет значение, которое вы получаете, беря каждый символ и сдвигая его вверх, так что " I " заканчивается в самых значительных битах 32-битного значения. Очевидно, что вы не должны полагаться на это, если вы пишете независимый от платформы код.

одинарные кавычки-это символы (char), двойные кавычки-это строки с нулевым завершением (char *).

char c = 'x';
char *s = "Hello World";
  • 'x' - Это целое число, представляющее числовое значение буква x в наборе символов машины
  • "x" - это массив символов, длиной в два символа, состоит из ‘x’ следовал по

я ковырялся в таких вещах, как: int cc = 'cc'; бывает, что это в основном байтовая копия целого числа. Следовательно, способ взглянуть на это заключается в том, что "cc", который в основном является 2 c, копируется на более низкие 2 байта целого cc. Если вы ищете мелочи, то

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

99 25443

это потому, что 25443 = 99 + 256*99

таким образом, ' cc ' является многозначной константой и не строку.

Ура

одинарные кавычки для одного символа. Двойные кавычки - это строка (массив символов). Вы можете использовать одинарные кавычки для построения строки по одному символу за раз, если хотите.

char myChar     = 'A';
char myString[] = "Hello Mum";
char myOtherString[] = { 'H','e','l','l','o','' };
  1. single quote на character;
  2. double quote на string.

двойные кавычки для строковых литералов, например:

char str[] = "Hello world";

одинарные кавычки предназначены для односимвольных литералов, например:

char c = 'x';

EDIT как сказал Дэвид в другом ответе, тип символьного литерала int.

в одинарных кавычках C, таких как "a", указывают символьные константы, тогда как " a " - это массив символов, всегда заканчивающийся символом 0

одинарные кавычки обозначают символ, двойные - строку.

в Java это тоже самое.

используйте одинарную кавычку с одним символом как:

char ch = 'a';

здесь 'a' является константой char и равна ASCII значение char a.

используйте двойную кавычку со строками как:

char str[] = "foo";

здесь "foo" - строковый литерал.

его можно использовать "a" но это не нормально использовать'foo'

одинарная кавычка используется для символа, в то время как двойная кавычка используется для строки.

например..

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

выход

a Привет, Мир

Если вы использовали их в обратном случае и использовали одинарную кавычку для строки и двойную кавычку для символа. Вот это будет результат;

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

выход :

для первой строки.У вас будет мусорное значение или неожиданное.или у вас может быть такой выход..

пока для второго утверждения. Вы ничего не увидите. И еще одно. Если у вас есть больше заявления после этого. Они также не дадут вам никакого результата.

Примечание: язык PHP дает вам гибкость для использования одной и двойной кавычки легко.