170 похожих чатов

Итак, хочу убедиться что я правильно понял всё то что

узнал про ссылки:
- Ссылка присваивается один раз как второе имя какой-нибудь переменной и больше не меняется
- Все дальнейшие операции, проводимые со ссылкой, меняют переменную, на которую она указывает
- Ссылка полезна как аргумент функции, если нужно изменить саму переменную, а не её значение
- Хорошо подходит для перегрузки операторов

Есть ещё полезности, которые я пропустил?

17 ответов

25 просмотров

А если ссылка const?

Arthur-Novikov Автор вопроса
Blue Talpa
А если ссылка const?

Тогда инициализируем сразу и пользуемся. Поменять нельзя.

Arthur Novikov
Тогда инициализируем сразу и пользуемся. Поменять ...

А что значит «если нужно изменить саму переменную, а не её значение»?

Arthur-Novikov Автор вопроса
Blue Talpa
А что значит «если нужно изменить саму переменную,...

Значит меняем саму переменную, которую передаём в функцию, а не её копию

Arthur Novikov
Значит меняем саму переменную, которую передаём в ...

А чем изменение самой переменной отличается от изменения её значения? я хлебушек, простите -_-

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

Blue Talpa
Вообще можно ещё добавить, что ссылка не хранит ин...

А что ты подразумеваешь под "хранить информацию о типе"?

Arthur-Novikov Автор вопроса
Blue Talpa
А чем изменение самой переменной отличается от изм...

Есть Элеонора, у которой 25 яблок. Есть функция Add(int x) { x++; } - дать ещё одно. Если вызовем её так: int apples = 25; Add(apples); cout « apples; Увидим что яблок 25; _______________________ Есть Грегори, у которого 25 Элеонор. Есть функция OneMore(int &x) { x++; } Если вызовем её так: int girls = 25; OneMore(girls); cout « girls; Увидим что Грегори облюбил ещё одну; Вся разница в том что в первом случае в функцию передаём значение, во втором - ссылку. Первая функция принимает число 25, а вторая - переменную girls. 25 меняется на 26, но apples не меняется. Во втором случае girls меняется с 25 на 26, так как функция зацепила по ссылке именно эту переменную, а не просто какое-то число. Ты хлебушек, йа холубь

Arthur-Novikov Автор вопроса
Aleksander Spichak
А что ты подразумеваешь под "хранить информацию о ...

Из ссылки не добыть информацию о типе данных, на которые она указывает. Из указателя добыть можно.

Blue Talpa
Вообще можно ещё добавить, что ссылка не хранит ин...

Ничего, что ссылка - это разыменованный константный указатель?

Aleksander Spichak
Не согласен https://en.cppreference.com/w/cpp/type...

Ок, я поищу тогда ту лекцию. Спасибо.

Arthur Novikov
Есть Элеонора, у которой 25 яблок. Есть функция A...

Так меняется-то значение переменной в обоих случаях. Просто в первом, где аргумент по значению приходит, создаётся локальная копия. Но это же тоже переменная, у неё адрес будет. Со своим значением, которое и меняется.

Arthur-Novikov Автор вопроса
Blue Talpa
Так меняется-то значение переменной в обоих случая...

Да, дублируется локалка, выделяется дополнительная память под неё, а оригинал простаивает

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
1
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Карта сайта