1. Присваивание указателю адреса существующего объекта:
· с помощью операции получения адреса:
int а = 5; // целая переменная
int* р = &а; //в указатель записывается адрес а
int* р (&а); // то же самое другим способом
· с помощью значения другого инициализированного указателя:
int* r = р;
· с помощью имени массива или функции, которые трактуются как адрес:
int b[10]; // массив
int* t = b; // присваивание адреса начала массива
...
void f(int а ){ /* ... * / } // определение функции
void (*pf)(int); // указатель на функцию
pf = f; // присваивание адреса функции
2. Присваивание указателю адреса области памяти в явном виде:
char* vp = (char *)0хВ8000000;
Здесь 0хВ8000000 — шестнадцатеричная константа, (char *) — операция приведения типа: константа преобразуется к типу «указатель на char».
3. Присваивание пустого значения:
int* suxx = NULL;
int* rulez = 0; В первой строке используется константа NULL, определенная в некоторых заголовочных файлах как указатель, равный нулю. Рекомендуется использовать просто 0, так как это значение типа int будет правильно преобразовано стандартными способами в соответствии с контекстом. Поскольку гарантируется, что объектов с нулевым адресом нет, пустой указатель можно использовать для проверки, ссылается указатель на конкретный объект или нет.
4. Выделение участка динамической памяти и присваивание ее адреса указателю:
· с помощью операции new:
int* n = new int; //1
int* m = new int (10); // 2
int* q = new int [10]; // 3
с помощью функции malloc (для того чтобы использовать malloc, требуется подключить к программе заголовочный файл <malloc.h>.)
int* u = (int *)malloc(s1zeof(int)); // 4