Ссылки и указатели в C++

Материал из Энциклопедия о программировании
Перейти к: навигация, поиск

Ссылки и указатели в C++ служат для хранения адресов значений.

  • Указатель — переменная, хранящая адрес ячейки RAM – напр., 0x100.
  • Ссылка — псевдоним для переменной.

Ссылки работают только со значениями, в то время как указатели могут работать и со значениями, и с адресами. Ещё раз: указатели могут напрямую работать и с адресами, и со значениями, в то время как ссылки работают только со значениями.

Нельзя создавать ссылку «в никуда», как это можно делать при создании указателей. Ссылка всегда должна куда-то ссылаться. Т.о., при декларации ссылки сразу же делают её инициализацию.

Указатели работают и со значениями и с адресами в отличие от ссылок, которые работают только со значениями. Когда используется адрес указателя, то пишется просто имя переменной указателя, когда же используется значение указателя, лежащее по адресу указателя, то применяется операция разыменования — используется знак звездочки перед именем переменной указателя.

Как и обычные переменные, указатели могут использоваться с правой стороны оператора присваивания для присвоения значения другому указателю. Напр.:

#include <stdio.h>
int main (void) {
	int x;
	int *p1, *p2;
	p1 = &x;
	p2 = p1;
	printf("%р %р", p1, р2); // выводит адреса, хранящиеся в p1 и р2. Они будут одинаковы
	return 0;
}

Здесь p1 и p2 содержат адрес х.

Примеры

Cls var1;
Cls2 *var2;
var2 = &var1;
Cls2 &varRef = var1;
Это незаконченная статья. Вы можете помочь, исправив и дополнив её.
Шаблон:C plus plus