Адрес оператора &
Обратите внимание на применение символа амперсанд - & в предыдущем
примере кода. Оператор & получает адрес переменной в памяти. Адрес
переменной в памяти – это место где живёт переменная в пространстве памяти
компьютера. С++ имеет способность получать адрес любого объекта в памяти
вашей программы. Адрес переменной уникален, и своего рода случаен.
Скажем, мы выводим адрес целочисленной переменной x:
int x = 22;
cout << &x << endl; //
выводит адрес x
При первом запуске, мой компьютер выводит следующее:
0023F744
Это число (значение принадлежащее &) просто клетка памяти, в которой хранится
переменная x. Это означает что именно в этом запуске программы, переменная x
расположена в клетке памяти под этим номером 0023F744, как показано на
следующем изображении (где another space – другое пространство):
48 |
С т р а н и ц а
Теперь, создайте и назначьте переменную указателя на адрес x:
int *px;
px = &x;
Что мы делаем здесь? Сохраняем адрес памяти x в переменной px. Таким образом,
мы буквально указываем на переменную х совсем другую переменную именуемую
px. Это может выглядеть, как показано на следующем изображении:
Здесь переменная px содержит в себе адрес переменной х. Другими словами,
переменная px является ссылкой на другую переменную. Дифференцирование px
означает доступ к переменной, на которую и ссылается px. Дифференцирование
выполнено используя знак *:
cout << *px << endl;
49 |
С т р а н и ц а
Достарыңызбен бөлісу: |