Основной операцией над указателем является разыменование, т. е. ссылка на объект, на который указывает указатель. Эту операцию также именуют косвенным обращением. Например:char c1 = 'a';char* p = &c1 // в p хранится адрес c1 char c2 = *p; // c2 = 'a'Над указателями можно осуществлять определенные арифметические действия. К примеру, функция, подсчитывающая число символов в строке (не считая завершающего 0):int strlen(char* p) {int i = 0;while (*p++) i++; return i;}Два структурных типа различны, даже когда они имеют одинаковые члены. К примеру: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;