В С++, как и в других языках, имеется возможность работы с памятью и с указателями на местоположение в этой памяти. Думаю, все знают, что память разделена на ячейки (размер одной ячейки равен одному байту), и у каждой ячейки есть свой уникальный адрес.
Я предпочитаю не заморачиваться с этим, и стараюсь использовать обычные переменные. Но если в Паскале это возможно почти всегда, то в С/С++ очень многие стандартные функции используют указатели (адресные переменные), так что без изучения этого вопроса “сишникам” не обойтись.
Наиболее часто в С/С++ используются два оператора для работы с указателями:
- & - получение адреса
- * - в выражении получает доступ к данным, на которые указывает указатель; в объявлении говорит о том, что это указатель.
Оба этих оператора являются унарными, то есть применяются с одним операндом.
Проще, наверно, будет понять на примере:
С помощью & мы можем получить адрес переменной:
P1 = &iNum;
Теперь в P1 записан адрес переменной iNum.
С помощью * мы можем прочитать значение или записать значение в память по адресу, на который ссылается указатель:
*P2 = 15.5;
Здесь мы по адресу, на который указывает P2, записываем число 15.5. И, поскольку ранее мы получили в P2 адрес переменной fNum, то таким образом мы изменили значение переменной fNum, хотя непосредственно с именем этой переменной мы не работали.
На этом всё. Подписывайтесь на канал, чтобы ничего не пропустить.