|
||||
|
8.4.1 Примеры Описание int i; int *pi; int f (); int *fpi (); int (*pif) (); описывает целое i, указатель pi на целое, функцию f, возвращающую целое, функцию fpi , возвращающую указатель на целое, и указатель pif на функцию, возвращающую целое. Осбенно полезно сравнить последние две. Цепочка *fpi() есть *(fpi()), как предполагается в описании, и та же конструкция требуется в выражении, вызов функции fpi, и затем использовние косвенного обращения через (указательный) результ, чтобы получить целое. В описателе (*pif)() дополнительные скобки необходимы для указания того, что косвенность через указатель на функцию дает функцию, которая затем вызывается. Функции f и fpi описаны как не получающие параметров, а pif как указвающая на функцию, не получающую параметров. Описание const a = 10, *pc = amp;a, *const cpc = pc; int b, *const cp = amp;b; описывает a: целую константу, pc: указатель на целую константу, cpc: константный указатель на целую константу, b: целое и cp: константный указатель на целое. Значения a, cpc и cp не могут быть изменены после инициализации. Значение pc может быть изменено, как и объект, указываемый cp. Примеры недопустимых выражений: a = 1; a++; *pc = 2; cp = amp;a; cpc++; Примеры допустимых выражений: b = a; *cp = a; pc++; pc = cpc; Описание fseek (FILE*,long,int); описывает функцию, получающую три параметра указанных типов. Поскольку тип возвращаемого значения не задан, он прнимается int (#8.2). Описание point (int = 0,int = 0); описывает функцию, которая может вызываться без парамеров, с одним или с двумя параметрами типа int. Ее можно вызвать одним из следующих способов: point (1,2); point (1); point (); Описание printf (char* ... ); описывает функцию, которая может вызываться с различными числом и типами параметров. Например printf («hello, world»); printf («a=%d b=%d»,a,b); Однако, всегда ее первым параметром должен быть char*. Описание float fa[17], *afp[17]; описывает массив чисел с плавающей точкой и массив укзателей на числа с плавающей точкой. И, наконец, static int x3d[3][5][7]; описывает массив целых, размером 3x6x7. Совсем подробно: x3d является массивом из трех элементов данных; каждый из элементов данных является массивом из пяти массивов; каждый из последних массивов является массивом из семи целых. Пояление каждое из выражений x3d, x3d[i], x3d[i][j], x3d[i][j][k] может быть приемлемо в выражении. |
|
||