Если у меня есть следующее:
char test[10] = "#";
Гарантированно ли с test[1]
по test[9]
будет \0
? Или только test[1]
гарантированно будет \0
?
1 ответ
Это определение
char test[10] = "#";
Эквивалентно
char test[10] = { '#', '\0' };
То есть два элемента массива явно инициализируются инициализаторами. Все остальные элементы массива будут инициализированы нулем, то есть неявно они будут установлены на '\ 0'
Согласно стандарту C ++ (раздел 8.5.2 Символьные массивы)
3 Если инициализаторов меньше, чем элементов массива, каждый элемент, не инициализированный явно, должен быть инициализирован нулем (8.5).
Похожие вопросы
Новые вопросы
c++
C++ — это язык программирования общего назначения. Изначально он разрабатывался как расширение C и имел аналогичный синтаксис, но теперь это совершенно другой язык. Используйте этот тег для вопросов о коде, который будет скомпилирован с помощью компилятора C++. Используйте тег версии для вопросов, связанных с конкретной стандартной версией [C++11], [C++14], [C++17], [C++20] или [C++23]. и т.д.