int a = 5; // бүтiн айнымалы int* р = &a; /* нұсқауышқа а шамасының адресі жазылады */ int* p (&a); /* жоғарыдағы операция орындалуының басқа тəсілі */ □ басқа инициалданған нұсқауыш мəнінің көмегімен:
int* r = р; □ адрес ретінде қолданылатын жиымның немесе функцияның аты
арқылы («Жиымдар» жəне «Функциялардың атауларын параметр
ретінде беру» бөлімдерін қараңыз, 57 б., 82 б.):
int b[10]; // жиым int* t = b; // жиым басының адресін меншіктеу … void f(int a){ /*... */ } // функцияны анықтау void (*pf)(int); // функцияға нұсқауыш pf = f; // функция адресін меншіктеу 2. Нұсқауышқа жады аймағының адресін айқын түрде меншіктеу: char* vp = (char *)0xB8 000 000; Мұндағы
0xB8 000 000 – он алтылық түрдегі тұрақты,
(char *) –
типті түрлендіру операциясы; тұрақты «
char -ға нұсқауыш» типіне
түрлендіріледі.
3. Бос мəнді меншіктеу: int* suxx = NULL; int* rulez = 0; Алғашқы жолда
NULL тұрақтысы қолданылады, ол C тілінің кейбір
тақырыптық файлдарында нөлге тең нұсқауыш ретінде анықталған. Жай
ғана 0 түріндегі белгілеуді қолдану ұсынылады, себебі
int типіндегі бұл
мəн стандартты тəсілдер көмегімен мəтінге (контекстке) сəйкес дұрыс
түрлендіріледі. Нөлдiк адресi бар объектілердің болмауына кепілдік
берілетіндіктен, нұсқауыштың нақты объектіге сілтеме жасау шартын
тексеру үшiн бос нұсқауышты қолдануға болады.
4. Динамикалық жады аймағын бөліп беру жəне нұсқауышқа оның адресін меншіктеу: □ new операциясының көмегімен:
int* n = new int;