История изменений
Исправление
Norong,
(текущая версия)
:
У меня возник вопрос про статические внутренние (локальные) переменные. Я понял так: Когда я объявляю такую переменную внутри функции, под неё выделяется память, и вместо того, чтобы содержать мусор, эта переменная инициализируется нулями. А если я её хочу проинициализировать чем-то другим, то я её внутри функции определяю вот так:
static int buf = 4;
и при первом входе в функцию под неё выделится память, будет выполнена инициализация нужным мне значением, а при последующих входах в функцию эта строка с инициализацией уже не будет иметь значения, потому что переменная уже была определена и проинициализирована.
Я правильно всё это понимаю, или есть какие-то хитрости?
Исправление
Norong,
:
У меня возник вопрос про статические внутренние (локальные) переменные. Я понял так: Когда я объявляю такую переменную внутри функции, она не мусор содержит, а нулями инициализируется. А если я её хочу проинициализировать чем-то другим, то я её внутри функции определяю вот так:
static int buf = 4;
и при первом входе в функцию под неё выделится память, будет выполнена инициализация нужным мне значением, а при последующих входах в функцию эта строка с инициализацией уже не будет иметь значения, потому что переменная уже была определена и проинициализирована.
Я правильно всё это понимаю, или есть какие-то хитрости?
Исправление
Norong,
:
У меня возник вопрос про статические внутренние (локальные) переменные. Я понял так: Когда я объявляю такую переменную внутри функции, она не мусор содержит, а нулями инициализируется. А если я её хочу проинициализировать чем-то другим, то я её внутри функции определяю вот так:
static int buf = 4;
и она при первом входе в функцию проинициализируется, чем мне надо, а при последующих входах в функцию эта строка с инициализацией уже не будет иметь значения, потому что переменная уже была определена и проинициализирована.
Я правильно всё это понимаю, или есть какие-то хитрости?
Исходная версия
Norong,
:
У меня возник вопрос про статические внутренние (локальные) переменные. Я понял так: Когда я объявляю такую переменную внутри функции, она ведь не мусор содержит, а нулями инициализируется. А если я её хочу проинициализировать чем-то другим, то я её внутри функции определяю вот так:
static int buf = 4;
и она при первом входе в функцию проинициализируется, чем мне надо, а при последующих входах в функцию эта строка с инициализацией уже не будет иметь значения, потому что переменная уже была определена и проинициализирована.
Я правильно всё это понимаю, или есть какие-то хитрости?