Чтобы связать неинициализированный указатель с новым участком памяти еще не занятый никаким программным объектом используется оператор new
Int *ptr;
ptr – new int;
Нельзя рассчитывать, что выделенный участок памяти будет содержать нулевое значение, и в общем-то обычно он не содержит нулевое значение. Размер выделенного участка определяется типом, записанным после new; адрес выделенного участка сохраняется в указателе. Работать данными, указанными в выделенном участке можно с помощью операции разыменование. Инициализировать выделенный участок можно непосредственно при использовании оперцации new.
Указатель = new тип (инициализирующее_выражение)
С помощью указателей можно добраться до некоторой служебной информаций. Например до байтов состояния клавиатуры, видеопамяти и тому подобное. В этом случае используют прямые адреса. Например: состояние клавиатуры можно анализировать с помощью указателя объявленного следующим образом:
char *key_byte = (char*)1047;
Указатель может быть объявлен как константный
Тип *const имя_указателя = инициализирующее_выражение;
Изменит такой указатель в программе нельзя, т.е. сам адрес изменить нельзя, но получить доступ к участку памяти и изменить значение, хранящееся в этом участке памяти можно. По умолчанию в Borland C выделяет память в стеки[1]. Любой указатель требует в памяти два байта. А поскольку сам указатель хранится в памяти, то его адрес также можно сохранить в указателе.
Int **pptr; //Указатель на указатель, способный хранить
Pptr = &ptr //адрес переменной типа
Над указателем допустимы следующие операции:
1. Разыменование
2. Присваивание
3. Получение адреса
4. Приведение типов (смотри пример с байтовым определением клавиатуры)
5. Инкремент
6. Декремент
7. Сложение и вычитание
8. Сравнение