Існують наступні обмеження на використання операції взяття адреси "&":
— не можна визначати адресу константи ( оскільки їй не приділяється комірка пам'яті), тобто неприпустимий запис : vp = &345;
— не можна визначати адресу результату арифметичного виразу, тому наступний запис невірний :vp = & (x + y); .
Для змінних – покажчиківдозволені операції:
— присвоювання;
— інкремент і декремент;
— додавання і віднімання;
— порівняння покажчиків однакового типу.
Наприклад, демонстраційна програма з використанням змінних-покажчиків може мати вигляд:
//P2_6.CPP— використання змінних- покажчиків
#include < iostream>
using namespace std;
Void main ( void )
{
int *ptr1 = (int*)100 ;
int *ptr2 = (int*) 200;
ptr1++;
ptr2 -= 10;
cout << "ptr1=" << ptr1 << endl;
cout << "ptr2=" << ptr2 << endl;
cout << "ptr2 - ptr1=" << ptr2 - ptr1 << endl;
}
Результат виконання програми :
ptr1 = 00000068
ptr2 = 000000A0
ptr2 - ptr1 = 14
У програмі операція ptr1++збільшить адресу на 4 байта ,оскільки дані типу int займають 4 байти,операція ptr2-=10зменьшує адресу на 40 байтів.Адреси виводяться на екран в шістнадцятковому вигляді.
Переглядів: 280
Не знайшли потрібну інформацію? Скористайтесь пошуком google: