Я новичок в C++, и я не понимаю, почему я должен использовать указатели и ссылки?Зачем использовать указатели? C++
, например Idon't получить, как это работает
int a = 8;
int *p1;
p1 = &a;
Я новичок в C++, и я не понимаю, почему я должен использовать указатели и ссылки?Зачем использовать указатели? C++
, например Idon't получить, как это работает
int a = 8;
int *p1;
p1 = &a;
Указатель представляет собой адрес переменной.
Представьте себе, что в качестве последовательных коробок. Каждый ящик имеет адрес.
Теперь в вашем примере.
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
Указатель не всегда является адресом переменной, это может быть указатель на элемент в массиве, указатель на ячейку памяти и т. д. – TartanLlama
@TartanLlama Элемент массива имеет адрес, назначая этот адрес указателю, является не более чем адресом этот элемент. В общем случае мы называем это указателем на элемент массива, но он по-прежнему является адресом. Да, у вас могут быть указатели на указатели и т. Д., Я просто хотел сделать пример, который очень прост. – KostasRim
Что не получите? Это очень просто и обсуждалось во многих местах, включая учебник/справочник. – NathanOliver
@NathanOliver верен, это обсуждалось много раз. Я бы предложил быстрый поиск в Google и чтение документов, таких как [this] (http://www.cplusplus.com/doc/tutorial/pointers/) –
Вы действительно имеете в виду: «Я не понимаю, почему это работает» или вы говорите: «Я не вижу значения этого»? – AudreyM