Привет всем!
Вопрос 1: Есть в методе такая строка:
const char *c = "123";
Как это присванивание работает? В стеке создается массив с '1','2','3', а затем указатель на массив копируется в "с"? Все верно, ничего не упустил?
Вопрос 2: Почему в следующем примере последние элементы заполняются нулями:
int b[5] = {7,-4,5};
Если массив объявлен как локальный\глобальный, то элементы [3] и [4] содержат нули. Почему? Ведь локальные переменные не должны инициализироваться нулями автоматически.
В сегменте данных создается массив char
с элементами '1','2','3',0
и указатель на него присваивается переменной c
. Причем этот сегмент вполне может быть доступен только для чтения, так что изменить данные в нем будет невозможно.
Если есть хоть какая-то инициализация, то недостающие элементы также инициализируются - значением по умолчанию 0.
В C, например, проходит такое -
int array[] = { [0] = 2, [100] = -1 };
Будет массив из двойки, 99 нулей и 101-й элемент - -1
:)
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть QSqlTableModel, связанная с таблицей в базе данныхНужно найти элемент(получить его индекс), находящийся в столбце "column" и для которого значение...