Форум программистов, компьютерный форум, киберфорум
outoftime
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  

Кратко об указателях

Запись от outoftime размещена 14.02.2018 в 21:26
Показов 2736 Комментарии 0

У тебя есть переменная

C++
1
int a = 1;
Она лежит где-то в памяти. Ты можешь взять ее адрес и сохранить этот адрес в другую переменную.

C++
1
int* b = &a;
b имеет значение адреса по которому находится значение переменной a.

Мы можем поменять данные которые лежат по адресу переменной a обратившись к ним разименованием переменной b

C++
1
*b = 2; // a = 2
Еще мы можем сделать еще один указатель на переменную a но уже просто скопировав сам адрес в другую перменную

C++
1
int* c = b;
Переменная c содержит тот же адрес что и перменная b, этот адрес указывает на область памяти где лежат данные переменной a

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

C++
1
2
3
void do_something(int *c);
// ...
do_something(b);
Для того, чтобы модифицировать указатель b внутри функции, нужно либо передать указатель на указатель b либо передать указатель по ссылке:

C++
1
2
3
4
5
6
7
void do_something(int **c) {
    *c = new int;
}
// или
void do_something(int *&c) {
    c = new int;
}
А вот и полный листинг, продолжайте его читать до тех пор пока не поймете что здесь происходит

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
 
void do_something(int **c) { *c = new int(3); }
void do_something(int *&c) { c = new int(4); }
 
int main()
{
    int a = 1;
    int *b = &a;
    std::cout << a  << " " << *b << std::endl;
    *b = 2;
    std::cout << a  << " " << *b << std::endl;
    do_something(&b);
    std::cout << a  << " " << *b << std::endl;
    do_something(b);
    std::cout << a  << " " << *b << std::endl;
}
Размещено в C/C++
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 0
Комментарии
 
Новые блоги и статьи
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки Правым кликом по серверу -> отладочная информация -> edit Заменить "net": "raw", на "net": "tcp", Нажать кнопку reload.
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru