Инициализация. Выражения
1. Инициализация. Выражения.
Инициализатор определяет начальное значение объекта. Если он не указан, то объекту присваивается нулевое значение соответствующего типа. Например:
int a; /*означает int a = 0*/
double d; /*означает double d = 0.0*/
Локальные переменные и объекты, создаваемые в области свободной памяти, не инициализируются по умолчанию:
void f()
{
int x; /* x не имеет надежно определенного значения */
//…
}
Сложные объекты требуют более одного инициализатора. Для массивов и структур используется синтаксис списков инициализаторов. Список значений заключается в фигурные скобки. Для инициализации типов, определяемых пользователем, применяются конструкторы с синтаксисом вызова функции. Примеры:
int a[] = {1, 2};
В языке не определен контроль за переполнением, делением на нуль и другими исключительными ситуациями, возникающими при вычислении выражения. В большинстве существующих реализаций Си при вычислении знаковых целочисленных выражений и присваивании переполнение игнорируется, но результат таких вычислений не определен. Трактовки деления на нуль и всех исключительных ситуаций, связанных с плавающей точкой, могут не совпадать в разных реализациях;