Составные литералы

Содержание

С99 дает возможность определять составные литералы, которые являются выражениями, состоящими из массивов, структур или объединений; эти выражения и обозначают объекты данного типа. Составной литерал создается путем указания имени типа в круглых скобках, за которым следует список инициализации, обязательно заключенный в фигурные скобки. Когда именем типа является массив, то размер указывать нельзя. Создается безымянный объект.

Вот пример составного литерала:

double *fp = (double[]) {1.0, 2.0, 3.0};

В данном случае создается указатель на double, который называется fp и указывает на первый элемент массива, состоящего из трех элементов типа double.

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