Урок 3.2.3. Инициализация переменных

3.2.3. Инициализация переменных

Присваивание переменной начального значения во время компиляции программы называется инициализацией. При описании переменных можно сообщить компилятору о необходимости их инициализации. Если какая либо переменная из списка имен переменных инициализируется, то в списке она должна быть указана в виде:

<имя>=<константа>

или

<имя>=<константное_выражение>

или

<имя>=<имя>

где
<имя> - имя переменной, которой компилятором должно быть установлено начальное значение до выполнения программы;  <константа> - определяет конкретное устанавливаемое значение;  <константное выражение> – выражение, состоящее только из констант и знаков операций, например, 60+60.

Константные выражения в Си вычисляются во время компиляции, а не во время выполнения программы, поэтому их можно использовать везде, где может стоять константа. Примеры операторов описания с инициализацией переменных:

char backslach = '\\', litera = 'T';
int cows = 32, goats = 14;
float alfa, beta, gamma=1.7e-12;

Обратим внимание на то, что в последнем операторе описания инициализирована только переменная gamma, хотя с первого взгляда может показаться, что все три. Поэтому лучше избегать смешивания инициализируемых и неинициализируемых переменных в одном операторе описания. Кроме того, желательно начальное значение переменной записывать константой соответствующего типа, хотя Си допускает и несовпадение типов. Например, можно допустить такой оператор описания:

int cows = 3.2e+1, goats = 1.4e+1;

который эквивалентен второму оператору вышеприведенной группы, однако при этом компилятор должен затратить дополнительное время на преобразование вещественных констант к целому типу.

Рассмотрим еще несколько примеров инициализации переменных. В комментариях указываются случаи когда форма инициализации допускается только в языке C++.
int i = 5;
int i(5);                //только в с++
int a = abs(-3);    //используется математическая функция abs
double price = 109.99, discount = 0.16;
double sale_price = price * discount;
double sale_price (price * discount);       //только в с++
int val = get_value();                 //используется пользовательская функция,
//возвращающая число

Если глобальной статической переменной не задано начальное значение, то она инициализируется нулем. В остальных случаях значение не определено.

рассказать друзьям и получить подарок

Оставить комментарий

Ваш email не будет опубликован. Обязательные поля отмечены *

Вы можете использовать это HTMLтеги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Translate Переводчик

Подписка на новости

SmartResponder.ru
Ваш e-mail: *
Ваше имя: *

Хостинг для Wordpress сайтов