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

Скажите, а что собой на уровне компилятора представляет reference? Выделяется

ли под него память и где он хранится во время выполнения программы?
int rats = 101;
int & rodents = rats; // where is is stored??

45 ответов

5 просмотров

Конечно выделяется. Ссылка - это указатель, который не может быть нулем, и имеет немного другой синтаксис

Может выделяться, может нет

Serhii Herashchenko
А как верно

если бы ссылка была указателем, у неё был бы sizeof указателя и из них можно было бы сделать массив

Serhii Herashchenko
А как верно

Ссылка это просто "альтернативное имя объекта", алиас

Nastya-Medveda Автор вопроса
Kirill Bolshakov
Ссылка это просто "альтернативное имя объекта", ал...

Тогда где в памяти хранится информация о ссылке?

Nastya Medveda
Тогда где в памяти хранится информация о ссылке?

почему бы тебе не попринтить самой и посмотреть на адреса?

Nastya Medveda
Тогда где в памяти хранится информация о ссылке?

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

Константный указатель

нужно иметь в виду, что int a = 5; int &ref = a; assert(&a == &ref); int a = 5; int *ptr = &a; assert(&a != &ptr);

Nastya-Medveda Автор вопроса
Yalokin Kononov
почему бы тебе не попринтить самой и посмотреть на...

Я это уже сделала и у указателя тот же адрес.что и у его переменной. Вопрос в том, что у переменной есть адрес в памяти и есть значение. Когда я создаю указатель у него тоже есть адрес в памяти и значение (int значение другого адреса в памяти). Как они в памяти расположены я понимаю. Но как в памяти располагается reference?

Nastya Medveda
Я это уже сделала и у указателя тот же адрес.что и...

Это тоже указатель, но его нельзя изменить

Nastya-Medveda Автор вопроса
Kirill Bolshakov
https://t.me/supapro/852733

Это очень помогло понять что же такое ссылка. Спасибо.

Serhii Herashchenko
Так же, как любая другая переменная

Несовсем, компилятор запрещает тебе взять адрес ссылки

Nastya-Medveda Автор вопроса
Serhii Herashchenko
Так же, как любая другая переменная

хорошо, то есть ссылка это указатель, который разыменовывается автоматически?

Anatoly Shirokov
Несовсем, компилятор запрещает тебе взять адрес сс...

Ну я в смысле, что она лежит на стеке вместе с остальными переменными

Nastya Medveda
Я это уже сделала и у указателя тот же адрес.что и...

указатель привязан к памяти, ссылка - к значению

Nastya Medveda
хорошо, то есть ссылка это указатель, который разы...

считай ссылку другим именем объекта, алиасом

Danya🔥
Что-то непонятное

я тут хотел пояснить, что ссылка null быть не может, наверное, не совсем удачно

Sergey Sobolev
я тут хотел пояснить, что ссылка null быть не може...

Но может ссылаться на несуществующий объект

Nastya-Medveda Автор вопроса
Anatoly Shirokov
считай ссылку другим именем объекта, алиасом

Это я считаю. Я пытаюсь понять где она расположена. Если ссылка может не иметь своей памяти, то как тогда она может работать?

Nastya Medveda
Это я считаю. Я пытаюсь понять где она расположен...

Компилятор вместо ссылки использует непосредственно объект

Nastya Medveda
Это я считаю. Я пытаюсь понять где она расположен...

Может компиль вместо ссылки тупо подставляет то, на что она ссылается

Nastya Medveda
Это я считаю. Я пытаюсь понять где она расположен...

ну например представь компилятор возьмет и везде где ты писала ссылку на х подставит сам х

Nastya Medveda
Это я считаю. Я пытаюсь понять где она расположен...

Это стандарт не специфицирует Реализуется через указатель

Nastya Medveda
Это я считаю. Я пытаюсь понять где она расположен...

я уже написал, как правило это константный указатель, если это параметр функции или дата мембер, или ничего, компилятор возьмет реальный объект, которым инициализировалась ссылка.

Anatoly Shirokov
я уже написал, как правило это константный указате...

Вангую вопрос Насти: тогда зачем ссылка нужна, если она либо указатель, либо сам объект

d7d1cd
Вангую вопрос Насти: тогда зачем ссылка нужна, есл...

к слову, на этот вопрос ответил Страутруп в дизайне и эволюции

Nastya-Medveda Автор вопроса
Ilya Zviagin
Да, Константный только.

Если его не сделать константным, то оптимизация с заменой на оригинальную переменную перестанет работать.

Nastya-Medveda Автор вопроса
d7d1cd
Вангую вопрос Насти: тогда зачем ссылка нужна, есл...

Пока у меня вопрос только с тем, как вообще возможно в С++ реализовать многопоточность и не отстрелить ноги с одновременным доступом к одной и той же области памяти. Полагаю, что отладка многопоточных программ в С++ это суицидальная активность.

Nastya Medveda
Пока у меня вопрос только с тем, как вообще возмож...

ну да, так и есть, но зато в плюсах она хотя бы есть в отличие от питона)

Nastya Medveda
Пока у меня вопрос только с тем, как вообще возмож...

Я кидал логгер, которым можно иллюстрировать работу многопотка

Nastya Medveda
Пока у меня вопрос только с тем, как вообще возмож...

Не шарить данные между потоками и нет проблем

Nastya-Medveda Автор вопроса
Yalokin Kononov
ну да, так и есть, но зато в плюсах она хотя бы ес...

в питоне есть конкурент и треадинг. Так что в питоне тоже можно в многопоточность (И я даже это делала).

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта