2015-11-11 3 views
-6

Я новичок в C++, и я не понимаю, почему я должен использовать указатели и ссылки?Зачем использовать указатели? C++

, например Idon't получить, как это работает

int a = 8; 
int *p1; 
p1 = &a; 
+2

Что не получите? Это очень просто и обсуждалось во многих местах, включая учебник/справочник. – NathanOliver

+0

@NathanOliver верен, это обсуждалось много раз. Я бы предложил быстрый поиск в Google и чтение документов, таких как [this] (http://www.cplusplus.com/doc/tutorial/pointers/) –

+0

Вы действительно имеете в виду: «Я не понимаю, почему это работает» или вы говорите: «Я не вижу значения этого»? – AudreyM

ответ

0

Указатель представляет собой адрес переменной.

Представьте себе, что в качестве последовательных коробок. Каждый ящик имеет адрес.

Теперь в вашем примере.

int a = 8; //declares a variable of type int and initializes it with value 8 

int *p1; //p1 is a pointer meaning that the variable p1 holds an address instead of a value. 

p1 = &a; //The operator &is called address of. This statement makes p1 point to the address of a. That is p1 holds the address of a. 

Чтобы получить доступ к значению a вместо адреса, вам необходимо уважать его.

*p1 = 9; //now a = 9 
+1

Указатель не всегда является адресом переменной, это может быть указатель на элемент в массиве, указатель на ячейку памяти и т. д. – TartanLlama

+0

@TartanLlama Элемент массива имеет адрес, назначая этот адрес указателю, является не более чем адресом этот элемент. В общем случае мы называем это указателем на элемент массива, но он по-прежнему является адресом. Да, у вас могут быть указатели на указатели и т. Д., Я просто хотел сделать пример, который очень прост. – KostasRim

Смежные вопросы