Справочное руководство по C++



         

Примеры


В качестве примера, описание

int i; int *ip; int f (); int *fip (); int (*pfi) ();

описывает целое i, указатель ip на целое, функцию f, возвращающую целое, функцию fip , возвращающую указатель на целое, и указатель pfi на функцию, возвращающую целое. Особенно полезно сравнить последние две. Цепочка *fip() есть *(fip()), как предполагается в описании, и та же конструкция требуется в выражении, вызов функции fip, и затем косвенное использование результата через (указатель) для получения целого. В описателе (*pfi)() внешние скобки необходимы, поскольку они также входят в выражение, для указания того, что функция получается косвенно через указатель на фунцию, которая затем вызывается; это возвращает целое. Функции f и fip описаны как не получающие параметров, и fip как указывающая на функцию, не получающую параметров.

Описание

const a = 10, *pc = &a, *const cpc = pc; int b, *const cp = &b;

описывает a: целую константу, pc: указатель на целую константу, cpc: константный указатель на целую константу, b: целое и cp: константный указатель на целое. Значения a, cpc и cp не могут быть изменены после инициализации. Значение pc может быть изменено, как и объект, указываемый cp. Примеры недопустимых выражений :

a = 1; a++; *pc = 2; cp = &a; cpc++;

Примеры допустимых выражений :

b = a; *cp = a; pc++; pc = cpc;

Описание

fseek (FILE*,long,int);

описывает функцию, получающую три параметра специальных типов. Поскольку тип возвращаемого значения не определен, принимается, что он int (). Описание

point (int = 0,int = 0);

описывает функцию, которая может быть вызвана без параметров, с одним или двумя параметрами типа int. Например

point (1,2); point (1) /* имеет смысл point (1,0); */ point () /* имеет смысл point (0,0); */

Описание

printf (char* ... );

описывает функцию, которая может быть вызываться с различными числом и типами параметров. Например

printf ("hello, world"); printf ("a=%d b=%d",a,b); printf ("string=%s",st);

Однако, она всегда должна иметь своим первым параметром char*.

В качестве другого примера,

float fa[17], *afp[17];

описывает массив чисел с плавающей точкой и массив указателей на числа с плавающей точкой. И, наконец,

static int x3d[3][5][7];

описывает массив целых, размером 3x6x7. Совсем подробно: x3d является массивом из трех элементов; каждый из элементов является массивом из пяти элементов; каждый из последних элементов является массивом из семи целых. Появление каждое из выражений x3d, x3d[i], x3d[i][j], x3d[i][j][k] может быть приемлемо. Первые три имеют тип "массив", последний имеет тип int.




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