Когда следует использовать одинарные кавычки и двойные кавычки в программировании на C или С++?
Одиночные кавычки и двойные кавычки в C или С++
Ответ 1
В C и в C++ одиночные кавычки идентифицируют один символ, а двойные кавычки создают строковый литерал. 'a'
- это единственный литеральный символ, а "a"
- строковый литерал, содержащий 'a'
и нулевой терминатор (это массив с двумя символами).
В C++ тип символьного литерала - char
, но обратите внимание, что в C тип символьного литерала является int
, то есть sizeof 'a'
равен 4 в архитектуре, где ints 32bit (и CHAR_BIT - 8), а sizeof(char)
равно 1 всюду.
Ответ 2
Некоторые компиляторы также реализуют расширение, которое допускает многосимвольные константы. В стандарте C99 говорится:
6.4.4.4p10: "Значение целочисленной символьной константы, содержащей больше чем один символ (например, 'ab'), или содержащий символ или выход последовательность, не отображающая однобайтовый символ выполнения, от реализации".
Это может выглядеть так:
const uint32_t png_ihdr = 'IHDR';
Результирующая константа (в GCC, которая реализует это) имеет значение, которое вы получаете, принимая каждый символ и переставляя его, так что "I" попадает в самые значащие биты 32-битного значения. Очевидно, вы не должны полагаться на это, если пишете независимый от платформы код.
Ответ 3
Одиночные кавычки - это символы (char
), двойные кавычки - строки с нулевым завершением (char *
).
char c = 'x';
char *s = "Hello World";
Ответ 4
-
'x'
- целое число, представляющее численное значение буква x в наборе символов машин -
"x"
- массив символов, длиной два символа, состоящий из‘x’
, за которым следует‘\0’
Ответ 5
Одиночные кавычки предназначены для одного символа. Двойные кавычки для строки (массив символов). Вы можете использовать одинарные кавычки для создания строки по одному символу за раз, если хотите.
char myChar = 'A';
char myString[] = "Hello Mum";
char myOtherString[] = { 'H','e','l','l','o','\0' };
Ответ 6
Я ткнулся с такими вещами, как: int cc = 'cc'; Бывает, что в основном это байтовая копия целого числа. Следовательно, способ взглянуть на это состоит в том, что "cc", который в основном 2 c, копируется в нижние 2 байта целого cc. Если вы ищете мелочи, то
printf("%d %d", 'c', 'cc'); would give:
99 25443
что, поскольку 25443 = 99 + 256 * 99
Таким образом, 'cc' является многосимвольной константой, а не строкой.
ура
Ответ 7
-
single quote
дляcharacter
; -
double quote
дляstring
.
Ответ 8
В одинарных кавычках C, таких как 'a', указывают символьные константы, тогда как "a" - это массив символов, всегда заканчивающийся символом 0
Ответ 9
Двойные кавычки предназначены для строковых литералов, например:
char str[] = "Hello world";
Одиночные кавычки предназначены для односимвольных литералов, например:
char c = 'x';
EDIT Как сказал Дэвид в другом ответе, тип символьного литерала int
.
Ответ 10
Одинарная кавычка используется для символа, тогда как двойная кавычка используется для строки.
Например..
printf("%c \n",'a');
printf("%s","Hello World");
Выход
а Hello World
Если вы использовали их в обратном случае и использовали одиночную кавычку для строки и двойной кавычки для символа. Здесь это будет результат;
printf("%c \n","a");
printf("%s",'Hello World');
вывод:
для первой строки. У вас будет значение для мусора или неожиданное. Или у вас может быть выход вроде этого.
а для второго оператора. Вы ничего не увидите. Еще одно. Если после этого у вас будет больше заявлений. Они также не дадут вам никакого результата.
Примечание. Язык PHP дает вам возможность легко использовать одиночную и двойную цитату.
Ответ 11
Одиночные кавычки обозначают char, double обозначают строку.
В Java это тоже одно и то же.
Ответ 12
Используйте одиночную кавычку с одиночным char как:
char ch = 'a';
здесь 'a'
является константой char и равна значению ASCII
char a.
Используйте двойную кавычку со строками как:
char str[] = "foo";
здесь "foo"
- строковый литерал.
Хорошо использовать "a"
, но не использовать его foo'