Главная > Программирование > Указатели в языке программирования С++

Указатели в языке программирования С++

Пошаговая инструкция создания сайта

Пошаговая инструкция создания сайта

Многие новички, прежде не имевшие опыта в каких-либо языках программирования, не могут понять такую важную вещь как указатели.
Они убегают от всяческого их использования и стараются не говорить о них. Только вот зря, ибо они открывают огромные возможности!

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

Итак, перейдем к основам. Что представляют из себя указатели? Это те же переменные, вот только хранят они не совсем цифры или символы, а номер ячейки в памяти. Зная этот номер, далее будем называть его адрес, можно обратиться к той самой ячейке в памяти и получить данные из нее.

Приведем аналогию с домами и посылкой. Обычно на посылке пишут адрес дома в который необходимо доставить посылку. Когда почтальон отдает посылку, он получает за нее деньги(в данном случае нас интересует не то чтобы сами деньги, а их количество). Так вот с указателями все похоже! Адрес дома это адрес ячейки, а сумма денег это значение хранящееся в ячейке.

Посмотрим как это выглядит в языке С++ на практике. А выглядит это так:

int *pointer;

В данном случае объявляется указатель в котором будет неизвестное значение, то есть указатель будет указывать на неизвестную ячейку.
Для того, чтобы указатель указывал на то, что нам нужно мы присвоим ему адрес с помощью операции &(амперсанд), которая возвращает адрес переменной стоящей после нее:

int var = 100;
int *pointer = &var; // присваиваем указателю адрес переменной «var»

Можно писать и так:

int* pointer = &var;

Разницы не имеет где стоит знак «*».
Но будьте осторожны когда объявляете несколько указателей:


Комментарии:

Об авторе: Johan8888