Строка с нулевым символом в конце: используйте ‘\ 0’ или просто 0?

Если мне нужно завершить строку строкой с нулевым значением, лучше использовать \0 или простой 0 тоже достаточно?

Есть ли разница между использованием

char a[5];
a[0] = 0;

а также

char a[5];
a[0] = '\0';

Или \0 просто предпочел прояснить, что я здесь заканчиваю нулем, но для компилятора он такой же?

12

Решение

Использовать ‘\ 0’ или просто 0?

Там нет никакой разницы в стоимости.
В Си нет разницы в типе: оба int,
В C ++ они бывают разных типов: char а также int, Таким образом, край идет в '\0' поскольку здесь нет преобразования типов.

Различные руководства по стилю продвигают одно над другим. '\0' для ясности. 0 из-за отсутствия беспорядка.

Правильный ответ: Используйте стиль, основанный на стандартах / руководящих принципах кодирования вашей группы. Если у вашей группы нет такого руководства, составьте его. Лучше использовать один, чем иметь расходящиеся стили.

8

Другие решения

'\0' является escape-последовательность для восьмеричный буквальный со значением 0. Таким образом, нет никакой разницы между ними

Примечание: если вы имеете дело со строками, чем использовать std::string.

15

'\0' точно так же, как 0 несмотря на тип. '\0' это просто представление как char буквальный. Тип char можно инициализировать из простого int хотя литералы.

Так что на самом деле невозможно сказать, что лучше, просто помните, чтобы последовательно использовать его в своем коде.

8

Оба будут генерировать тот же машинный код, что и 0 будет преобразован в значение символа 0, а также '\0' это просто еще один способ записи значения символа 0, Последний явно персонаж, поэтому он покажет, что вы случайно не хотели писать '0' вместо этого, но кроме этого, это точно то же самое в конце.

6

Это то же самое. Посмотрите на таблицу ASCII.

С моей точки зрения, лучше использовать ‘\ 0’, потому что вы явно говорите, что конец строки.

Это помогает, когда вы читаете ваш код (например, используйте NULL для указателя вместо 0).

1
По вопросам рекламы [email protected]