Язык С



         

Смысл описателей - часть 2


INT I, *IP, F(), *FIP(), (*PFI)();

в котором описывается целое I, указатель IP на целое, функ- ция F, возвращающая целое, функция FIP, возвращающая указа- тель на целое, и указатель PFI на функцию, которая возвраща- ет целое. Особенно полезно сравнить два последних описателя. Связь в *FIP() можно представить в виде *(FIP()), так что описанием предполагается, а такой же конструкцией в выраже- нии требуется обращение к функции FIP и последующее исполь- зование косвенной адресации для выдачи с помощью полученного результата (указателя) целого. В описателе (*PFI)() дополни-

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

FLOAT FA[17], *AFP[17];

в котором описывается массив чисел типа FLOAT и массив ука- зателей на числа типа FLOAT. Наконец,

STATIC INT X3D[3][5][7];

описывает статический трехмерный массив целых размером 3*5*7. более подробно, X3D является массивом из трех элемен- тов; каждый элемент является массивом пяти массивов; каждый последний массив является массивом из семи целых. Каждое из выражений X3D, X3D[I], X3D[I][J] и X3D[I][J][K] может разум- ным образом появляться в выражениях. Первые три имеют тип "массив", последнее имеет тип INT.




    Содержание  Назад  Вперед