Язык С++ и программирование на нем. Рейзлин В.И. - 52 стр.

UptoLike

Составители: 

54
int * указатель на целое,
int * [10] массив указателей на целое,
int (*)[10] указатель на массив на 10 целых,
int * (void) функция без аргументов, возвращающая ука-
затель на целое,
int (*) (void) указатель на функцию без аргументов, воз-
вращающую результат целого типа,
int (*(void))[ ] функция без аргументов, возвращающая ука-
затель на массив целых.
14. Синоним имени типа
Синоним имени типа строится при помощи ключевого слова
typedef. Выражение, в котором присутствует это ключевое слово, явля-
ется описанием некоторого имени. Наличие слова typedef говорит о том,
что объявляемый идентификатор становится не именем объекта некото-
рого типа, а синонимом имени этого типа.
int INTEGER; // INTEGER – имя переменной типа int
typedef int INT; // INT – синоним типа int
typedef unsigned size_t;
typedef char string [255];
typedef void (*FPTR) (int);
Последние две строки определяют string как синоним типа «стро-
ка из 255 символов», а FPTR синоним типа «указатель на функцию,
имеющую один аргумент типа int и не возвращающую никакого резуль-
тата».
После объявления с помощью typedef новое имя становится пол-
ноценным именем типа:
string array; // arrayмассив из 255 символов
FPTR func_pointer; // void (*func_pointer)(int);
typedef string STRING;
Использование typedef может упростить понимание сложных
имен типов. Так, тип int (*(void))[ ] можно построить так:
typedef int intarray[]; // тип «массив целых»
typedef intarray * ptrtointarray; //тип указателя на массив це-
лых
typedef ptrtointarray TYPE (void);