Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
15 / 15 / 3
Регистрация: 18.05.2019
Сообщений: 851

Кто нибудь использует ссылки, и где ?

26.09.2021, 13:25. Показов 3365. Ответов 43
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Кто нибудь использует ссылки и где ?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.09.2021, 13:25
Ответы с готовыми решениями:

Кто-нибудь использует CodeBlocks? Похоже ошибка компилятора
Привет! Обычно перед тем как спрашивать, я гуглю и всё решается, но в этот раз это не помогло ( Появилась проблема при добавлении...

Кто-нибудь использует Me4n?
Maximizer for notes, хотелось бы пообщаться с такими ), надоело методом тыка все познавать :angry:

Кто-нибудь здесь использует Jython?
Я правильно понимаю, что основной смысл Джайтона - создание комбинированных программ, в которых логика запрограммирована на Пайтоне, а...

43
Заблокирован
26.09.2021, 13:28
Очень часто, во многих случаях.
Самый распространенный - передача аргументов в функции.
1
15 / 15 / 3
Регистрация: 18.05.2019
Сообщений: 851
26.09.2021, 13:46  [ТС]
SmallEvil,

Я об этом и говорю, указатели не всегда подходят ? Когда лучше ссылки ?

Добавлено через 51 секунду
Как передача аргументов функции.
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
26.09.2021, 13:59
DenAlpetyan, через параметры функции значения можно вернуть двумя способами: через параметры-указатели и через параметры-ссылки:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void func3(int *a, int *b) {
    *a = ...;
    *b = ...;
}
 
void func4(int &a, int &b) {
    a = ...;
    b = ...;
} 
 
 
int v1, v2;
func3(&v1, &v2);
func4(v1, v2);
запись с ссылками чуть проще. что выбрать решать Вам. возврат через параметры применяется например, когда нужно вернуть 2 (и более) значений из функции
1
Заблокирован
26.09.2021, 14:02
Лучший ответ Сообщение было отмечено DenAlpetyan как решение

Решение

Цитата Сообщение от DenAlpetyan Посмотреть сообщение
Когда лучше ссылки ?
Когда однозначно нужно наличие объекта.
Ссылки не могут быть ни нулевыми ни не инициализированы. Они всегда указывают на объект.
И не могут быть переназначены.
Исключение - висячие ссылки, когда ссылка указывает на уже не существующий объект.

Как то так...

Добавлено через 1 минуту
Yetty, все верно, есть случаи где выбор между указателями и ссылками принципиальной разницы не имеют.
Но как я написал выше, в указатели можно передать , ноль, адрес "чужой" памяти и так далее.
Ссылки более безопасны в этом отношении.
0
Модератор
Эксперт CЭксперт С++
 Аватар для Volga_
5208 / 2925 / 1509
Регистрация: 14.12.2018
Сообщений: 5,266
Записей в блоге: 1
26.09.2021, 14:13
Передача по указателю не быстрее чем по ссылке, потому что как я понимаю одна копия будет создать в функции при передаче по указателю, а не будет так при передаче по ссылке !
1
15 / 15 / 3
Регистрация: 18.05.2019
Сообщений: 851
26.09.2021, 14:20  [ТС]
Volga_,

В смысле, указатели и ссылки копий не делают ?
Передача ведь не по значению ?

Добавлено через 41 секунду
Или внутри функции ?
0
Модератор
Эксперт CЭксперт С++
 Аватар для Volga_
5208 / 2925 / 1509
Регистрация: 14.12.2018
Сообщений: 5,266
Записей в блоге: 1
26.09.2021, 14:24
DenAlpetyan, как я понимаю:
по ссылке - без копии внутри функции
по указателю или по значению - есть копии внутри функции !
0
Заблокирован
26.09.2021, 14:34
Цитата Сообщение от Volga_ Посмотреть сообщение
а не будет так при передаче по ссылке !
Ссылки так же копируются как и указатели. К чему это, я не понял...

DenAlpetyan,при передачи аргументов в функцию(по ссылкам/указателям), копируются сами ссылки/указатели, а не объекты на которые они указывают.

Цитата Сообщение от Volga_ Посмотреть сообщение
как я понимаю:
Цитата Сообщение от Volga_ Посмотреть сообщение
по указателю или по значению - есть копии внутри функции !
нет, есть только копия указателя. не объекта, хватит путать человеков

Добавлено через 2 минуты
Ссылка - тот же указатель, но он работает по другим правилам, что их и различает.
2
15 / 15 / 3
Регистрация: 18.05.2019
Сообщений: 851
26.09.2021, 14:39  [ТС]
Volga_,

По указателю почему копии, копии когда присваиваешь значение одной переменной другой.
Не важно через ссылку или указатель.

Добавлено через 2 минуты
SmallEvil,

Цитата Сообщение от SmallEvil Посмотреть сообщение
копируются сами ссылки/указатели, а не объекты на которые они указывают.
Спасибо, как то не задумывался.
0
Модератор
Эксперт CЭксперт С++
 Аватар для Volga_
5208 / 2925 / 1509
Регистрация: 14.12.2018
Сообщений: 5,266
Записей в блоге: 1
26.09.2021, 14:41
DenAlpetyan, почитайте что написано SmallEvil. Я не знаю правильно писать корректно на русском. И может быть путать человеков !
Цитата Сообщение от SmallEvil Посмотреть сообщение
копируются сами ссылки/указатели
По ссылке совсем нет копий, а копии только по указателю и по значению.
0
15 / 15 / 3
Регистрация: 18.05.2019
Сообщений: 851
26.09.2021, 14:45  [ТС]
Volga_,

Не по теме:

Цитата Сообщение от SmallEvil Посмотреть сообщение
хватит путать человеков
Это шуточный оборот речи.

0
Заблокирован
26.09.2021, 14:51
Ссылка - очень абстрактное понятие в С++. Его семантическое значение более важное, чем его низкоуровневая реализация.
Volga_,
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
char ch{};
class ref_field{
    char & pch1 = ch;
    char & pch2 = ch;
    char & pch3 = ch;
};
int main()
{
    std::cout << sizeof(ref_field); 
}
// размер класса сопоставим размеру с тремя указателями.
// но это неважно какой они имеют размер, важно что это тип данных, основанный
// на указателях, компилятор знает что это ссылки, и дальнейшая работа с этими "указателями"
// происходит по правилам ссылок, которые отдельно описаны и определены.
0
15 / 15 / 3
Регистрация: 18.05.2019
Сообщений: 851
26.09.2021, 14:56  [ТС]
Цитата Сообщение от Volga_ Посмотреть сообщение
По ссылке совсем нет копий, а копии только по указателю и по значению.
Ссылка в функцию передается через стек вызовов, как и другие аргументы.

Добавлено через 4 минуты
Я о процессорных инструкциях.
0
Заблокирован
26.09.2021, 15:00
Цитата Сообщение от DenAlpetyan Посмотреть сообщение
копируются сами ссылки/указатели, а не объекты на которые они указывают.
это только во время передачи аргументов в функции.
Дальше ссылки ведут себя как обычные переменные ( -> я указатель, но обратившись ко мне, вы обратитесь к объекту на который я указываю).
Поэтому ссылки нельзя рассматривать как указатели, и сравнивать в принципе тоже.
Это как сравнивать тазик с чайником, например, ну я не знаю.
1
15 / 15 / 3
Регистрация: 18.05.2019
Сообщений: 851
26.09.2021, 15:03  [ТС]
Тема слишком усложняется, вроде все понятно.

Добавлено через 2 минуты
SmallEvil,

Цитата Сообщение от SmallEvil Посмотреть сообщение
это только во время передачи аргументов в функции.
Дальше ссылки ведут себя как обычные переменные ( -> я указатель, но обратившись ко мне, вы обратитесь к объекту на который я указываю).
Поэтому ссылки нельзя рассматривать как указатели, и сравнивать в принципе тоже.
Это как сравнивать тазик с чайником, например, ну я не знаю.
Я вас понял.
0
Заблокирован
26.09.2021, 15:03
Цитата Сообщение от DenAlpetyan Посмотреть сообщение
Я о процессорных инструкциях.
Вы все верно поняли.
Все построено на них Указатель - приземленный , базовый тип.
Ссылка - высокоуровневая абстракция языка.
0
Модератор
Эксперт CЭксперт С++
 Аватар для Volga_
5208 / 2925 / 1509
Регистрация: 14.12.2018
Сообщений: 5,266
Записей в блоге: 1
26.09.2021, 15:05
Цитата Сообщение от SmallEvil Посмотреть сообщение
копируются сами ссылки
Я хотел говорить, что это не корректно. Ссылка не сможет копироваться ! Или я не понял это ваше мнение?
По ссылке все работает прямо с адресом переменных, которые переданы внутри функции. Без копий ! Это причина как по ссылке быстрее чем по другим.
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
26.09.2021, 15:48
Цитата Сообщение от Volga_ Посмотреть сообщение
Ссылка не сможет копироваться
когда ты передаешь в функцию ссылку,
то передаётся только ссылка на объект, а не сам объект.
это позволяет избежать копирования объекта.

но ссылка то при этом вполне себе создаётся.
ты создаешь копию ссылки.

на низком уровне компилятор имеет право реализовать механизм ссылки,
как этакий саморазыменовывающийся неизменяемый указатель.

более того, поскольку компилятор - не волшебник, и чудес не бывает,
то скорее всего именно так (посредством указателя)
он и реализует механизм передачи по ссылки во всех тех случаях,
когда у него нет возможности провести агрессивную оптимизацию.

---------------------

вывод:
с точки зрения эффективности,
"указатели" и "ссылки" - сопоставимы.

потому что с точки зрения низкоуровневой реализации,
в большинстве случаев "ссылка" - это и есть "указатель".
2
736 / 700 / 110
Регистрация: 29.05.2015
Сообщений: 4,266
26.09.2021, 17:35
Цитата Сообщение от hoggy Посмотреть сообщение
когда ты передаешь в функцию ссылку,
то передаётся только ссылка на объект, а не сам объект.
это позволяет избежать копирования объекта.
но ссылка то при этом вполне себе создаётся.
ты создаешь копию ссылки.
int A - это переменная, которая имеет свой адрес в памяти. Когда мы выполняем A = 5, мы записываем в память по этому адресу число 5.
ссылка - это адрес в памяти переменной A. Или я не прав?
указатель - это переменная, в которой может храниться адрес в памяти, например адрес переменной A.

Вопрос - где физически хранится ссылка? И когда создаётся копия ссылки, где физически хранится эта копия?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.09.2021, 17:35
Помогаю со студенческими работами здесь

Кто-нибудь использует SpeechAPI в MS Access?
Если кто-нибудь смог подключить объекты SpeechAPI k MSAccess, или сталкивался с использованием функций SpeechAPI в VBA, подскажите.

NDK и С++ кто-нибудь ИЗ ВАС использует?
Отзовитесь! Хочу услышать мнение о сложностях от тех кто реально использует NDK (c++). Теорию изучаю уже давно - знаю все плюсы и минусы...

Кто-нибудь уже использует aiohttp/muffin etc. ?
Наконец-то разобрался с этим дремучим asyncio, не хотел он мне даваться никак, пришлось лопатить исходный код, чтобы понять как все эти...

Code Composer Studio Кто нибудь использует??
Вопрос по Code Composer Studyo это бесплатная среда? Или имеет ограничения? Имеется ввиду последняя версия.

Кто нибудь использует/использовал эту либу?
'com.squareup.okhttp:okhttp:2.6.0' OkHttpClient Пользуетесь ли вы этой библиотекой?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru