Различия
Показаны различия между двумя версиями страницы.
— | reference [2025/07/06 12:39] (текущий) – создано - внешнее изменение 127.0.0.1 | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ====== Ссылка ====== | ||
+ | **Ссылка** в программировании — это объект, | ||
+ | [[peregruzka_operatorov|Перегрузка операторов]] часто использует ссылки. | ||
+ | |||
+ | Ссылку можно объявить следующим образом: | ||
+ | <имя типа>& | ||
+ | или | ||
+ | <имя типа>& | ||
+ | </ | ||
+ | Раз ссылка является другим именем уже существующего объекта, | ||
+ | * **Ограничения на ссылки**. В [[zametki_po_jazyku_c|языке С++]] существуют ограничения на работу со ссылками. Например, | ||
+ | |||
+ | Раз ссылка является другим именем уже существующего объекта, | ||
+ | |||
+ | <file cpp> | ||
+ | #include " | ||
+ | using namespace std; | ||
+ | void main() | ||
+ | { | ||
+ | int ivar = 1234; // | ||
+ | int *iptr = &ivar; // | ||
+ | int &iref = ivar; // | ||
+ | int *p = & | ||
+ | |||
+ | cout << "ivar = " << ivar << " | ||
+ | cout << "*iptr = " << *iptr <<" | ||
+ | cout << "iref = " << iref << " | ||
+ | cout << "*p = " << *p << " | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Результат работы программы: | ||
+ | < | ||
+ | ivar = 1234 | ||
+ | *iptr = 1234 | ||
+ | iref = 1234 | ||
+ | *p = 1234 | ||
+ | </ | ||
+ | Комментарии к программе.Здесь объявляются четыре переменные. Переменнаяivar инициализирована значением 1234. Указателю на целое *iptr присвоен адресivar. Переменная iref объявлена как ссылочная. Эта переменная в качестве своего значения принимает адрес расположения в памяти переменной ivar. Оператор: | ||
+ | |||
+ | выводит на экран значение переменной ivar. Это объясняется тем, что iref - ссылка на местоположение ivar в памяти. | ||
+ | |||
+ | Последнее объявление int *p = &iref; создает еще один указатель, | ||
+ | < | ||
+ | int *iptr = & | ||
+ | и | ||
+ | int *p = &iref; | ||
+ | </ | ||
+ | |||
+ | дают одинаковый результат. В них создаются указатели, | ||
+ | {{: | ||
+ | |||
+ | <note warning> | ||
+ | |||
+ | |||
+ | |||
+ | ====== Ссылки в качестве результатов функций ====== | ||
+ | Здесь мы рассмотрим использование ссылок в качестве результатов функций. Далее представлен ряд редакторов, | ||
+ | < | ||
+ | double &rf(int p); | ||
+ | </ | ||
+ | необходим аргумент целого типа, и она возвращает ссылку на объект double, предположительно объявленный где-то в другом месте. Проиллюстрируем сказанное конкретными примерами. | ||
+ | * **Пример 1**. Заполнение двумерного массива одинаковыми числами. | ||
+ | < | ||
+ | #include " | ||
+ | |||
+ | using namespace std; | ||
+ | int a[10][2]; | ||
+ | void main () | ||
+ | { | ||
+ | int & rf(int index); // | ||
+ | int b; | ||
+ | cout << " | ||
+ | cout << " | ||
+ | cout << "а второй - через функцию.\n"; | ||
+ | for (int i=0; | ||
+ | { | ||
+ | cout << i+1 << "-й элемент: | ||
+ | cin >> b; | ||
+ | a[i][0] = b; | ||
+ | rf(i) = b; | ||
+ | } | ||
+ | cout << " | ||
+ | cout << "1-й столбец | ||
+ | for (i=0; | ||
+ | cout << a[i][0] << " | ||
+ | } | ||
+ | |||
+ | int &rf(int index) | ||
+ | { | ||
+ | return a[index][1]; | ||
+ | } | ||
+ | </ | ||
+ | Здесь объявляется глобальный двумерный массив a, состоящий из целых чисел. В начале функции main() содержится прототип ссылочной функции rf(), которая возвращает ссылку на целое значение второго столбца массива a, которое однозначно идентифицируется параметром-индексом index. Так как функция rf() возвращает ссылку на целое значение, | ||
+ | < | ||
+ | rf(i) = b; | ||
+ | </ |
📌 Удобный подбор VPS по параметрам доступен на DIEGfinder.com - официальном инструменте проекта DIEG. Это часть единой экосистемы, созданной для того, чтобы помочь быстро найти подходящий VPS/VDS сервер для любых задач хостинга.
📌 Для тестирования скриптов, установщиков VPN и Python-ботов рекомендуем использовать надежные VPS на короткий срок. Подробнее о быстрой аренде VPS для экспериментов - читайте здесь.
💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!7 Самых Популярных Статей
- Как запустить скрипты и веб-приложения на Python
- Что такое страны TIER 1,2,3
- 7 способов сравнения файлов по содержимому в Windows или Linux
- Установка и тестирование веб-панели HestiaCP
- Nginx простые примеры конфигурации
- top, htop, atop определение загрузки ОС (Load average, LA)
- Использование rsync в примерах
7 Самых Популярных Обзоров
- Хостинг для Python-скриптов и приложений
- ТОП 4 лучших антидетект браузеров (Бесплатные & Платные)
- Подборка купонов (промокоды) на хостинг, антидетект браузеры
- Обзор THE.Hosting (PQ Hosting): надежный хостинг с профессиональной поддержкой
- Хостинг в России
- Хостинг в Европе
- Обзор браузера Dolphin {anty} для мультиаккаунтинга