#c_sharp #c++ #c #циклы
В чем заключается разница при разном определении итерационной переменной? Влияет ли на выделяемую память? int i; for (i = 0; i < someVal; i++) { } и for (int i = 0; i < someVal; i++) { }
Ответы
Ответ 1
Это будет влиять только на область видимости переменной i. В первом случае вы можете обратиться к переменной вне цикла, например: int i; for (i = 0; i < someVal; i++) { }; i = 2 + 2; Во втором случае область видимости i ограничена телом цикла.Ответ 2
В дополнение к совершенно правильному ответу @Flownee: то, как и где именно объявлены переменные, не важно. Важно лишь то, в каком месте в коде эта переменная всё ещё нужна. Современные компиляторы на популярных платформах проводят агрессивную оптимизацию, и используют память переменной для других переменных не в конце области её видимости, а реально как только она больше не нужна в коде. В отсутствие использования переменной после цикла оба варианта равносильны, и по идее дадут одинаковое распределение памяти.
Комментариев нет:
Отправить комментарий