Почему следует инициализировать переменные при их объявлении?
Почему следует инициализировать переменные при их объявлении?
Ответы (3 шт):
Ну я не думаю, что прям обязательно следует их инициализировать при объявлении. Ну только в том случае, если у тебя заранее есть значение или значение переменной константное и стоит ее(переменную) проинициализировать.
Как раз объявление не содержит инициализацию. Инициализация происходит при определении.
Имеет смысл инициализировать переменную, если она локальная нестатическая, потому что иначе там будет мусор и можно случайно к нему обратиться, вызвав неопределенное поведение. Да и после определения "инициализировать" переменную уже нельзя, можно только присвоить ей какое-то значение.
Основная причина в том чтоб не забыть положить значение в эту переменную. С переменными на стеке там оказажется значение с предыдущего вызова этой функции (например как в strtok). Со значениями на куче - нет гарантии что там будет в переменной.
Компилятор не выдаст предупреждения что переменная не инициализированна. При рефакторинге части кода могут быть переставленны местами и получим ошибку которую не поймает иде и компилятор.