Бьерн Страуструп - Язык программирования С++. Главы 2-4 - Эквивалентность типов

ОГЛАВЛЕНИЕ


2.3.9  Эквивалентность типов

Два структурных типа считаются различными даже тогда, когда они имеют одни и те же члены. Например, ниже определены различные типы:
        struct s1 { int a; };
        struct s2 { int a; };
В результате имеем:
        s1 x;
        s2 y = x;    // ошибка: несоответствие типов
Кроме того, структурные типы отличаются  от основных типов, поэтому получим:
        s1 x;
        int i = x;    // ошибка: несоответствие типов
Есть, однако, возможность, не определяя новый тип, задать новое имя для типа. В описании, начинающемся служебным словом typedef, описывается не переменная указанного типа, а вводится новое имя для типа.

Приведем пример:

        typedef char* Pchar;
        Pchar p1, p2;
        char* p3 = p1;
Это просто удобное средство сокращения записи.