|
49 / 49 / 31
Регистрация: 07.10.2015
Сообщений: 170
|
||||||
В чем отличие int &f( ) от int f( )19.11.2015, 17:23. Показов 10915. Ответов 34
Метки нет (Все метки)
Что такое int & и чем отличается от int ?
0
|
||||||
| 19.11.2015, 17:23 | |
|
Ответы с готовыми решениями:
34
Напишите функцию f(int& m1, int& m0, int N), которая воз- вращает первую и последнюю цифры двузначного натурального числа N Отличие int от int& |
|
49 / 49 / 31
Регистрация: 07.10.2015
Сообщений: 170
|
|
| 19.11.2015, 17:30 [ТС] | |
|
int & - это ссылка на int
Переформулирую, чем ссылка на int отличается от int? Не, тороплюсь я с вопросами. Надо немного подумать, подытожить, сформулировать...
0
|
|
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
||||||
| 19.11.2015, 17:34 | ||||||
Хочу заметить, что для меня если строка кода(или часть кода) потенциально может содержать UB при определённых действиях юзверга или пользователя - код UB.
0
|
||||||
| 19.11.2015, 17:34 | |
|
Не по теме: Кажись, пора писать F.A.Q. по темам ссылок, массивов, указателей и т.д.
0
|
|
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
|||||||
| 19.11.2015, 17:44 | |||||||
|
Поповоду отличия если отличный учебное задание
2
|
|||||||
|
49 / 49 / 31
Регистрация: 07.10.2015
Сообщений: 170
|
||||||||
| 20.11.2015, 11:58 [ТС] | ||||||||
|
Есть несколько утверждений и вопросов. Все ли все ли утверждения верны? Как объясняется преобразование int& в int ?
0
|
||||||||
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|||
| 20.11.2015, 12:11 | |||
|
Не по теме:
Добавлено через 34 секунды
0
|
|||
| 20.11.2015, 12:14 | |
|
0
|
|
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
||||||||||||||||
| 20.11.2015, 12:21 | ||||||||||||||||
1)
2)
1) ссылка на int - это его псевдоним - погонялово))) Везде где зовут Черепа или использую Черепа - можно в уме подставить его настоящее имя. Ничего не изменится с точки объяснения себе, что происходит. 2) если функция возращает псевдоним - возвращаемое значение lvalue(рано вам еще понимать, что это) и туда куда пришёл псевдоним может к нему обращаться. В примере с массивом я показал как функция main записываем в псевдоним элеммента массива число и оно магическим образом появляется в самом массиве. Но у вас в коде UB( undefined behavior) не определёное поведение. Причина: 1) main вызывает функцию 2) в стек (место в памяти с которым программа работает быстрее - погуглите там) ложится адресс возврата (куда вернутся после возвращения выполнения тела функции) 3) создается в стеке параметры для функции (ей же ж пришли данные - их же ж куда-то надо поместить) 4) далее в коде ей нужна переменная - она её создает в стеке - int n; 5) и возвращает псевдоним на эту переменную, к примеру Картавый, в место откуда вызывалась функция 6) функция уже не нужна - вызываются деструкторы всех локальных объектов и параметров в стеке ( оин все удаляются) и сама функция отдаёт контроль main - и умирает. 7) main то не знает что Картавый сдох - и начинает запихивать в него к пример число или читать число с него - а это уже некрофилией попахивает. И с точки зрения разработчиков языка - такая некрофилия может вернуть ожидаемое число, может вернуть любое другое, программа может критически завершится, программа может заказать себе билеты в Лас Вегас и много много другое. Именно последнее означает UB.
1
|
||||||||||||||||
|
49 / 49 / 31
Регистрация: 07.10.2015
Сообщений: 170
|
|
| 20.11.2015, 12:34 [ТС] | |
|
Пока читаю предыдущий ответ, еще одно утверждение (забыл написать).
i, k - это некие абстракции, представленные в буквенном виде для пользователей языка с++, для облегченного запоминания адреса, типа и смысла ячейки адреса. Эти абстракции работают в по правилам с++ в соответствии с их типом и адресом, сами по себе при этом не являясь ни адресом, ни указателем, ни значением. Адрес и тип абстракций являются по сути единственно важными параметрами для компилятора и компоновщика.
0
|
|
|
183 / 181 / 66
Регистрация: 15.02.2015
Сообщений: 515
|
||||||
| 20.11.2015, 12:35 | ||||||
|
Прикол в том, что в случае
k = func('1') UB проявит себя с очень малой долей вероятности, так как значение скрывающееся за возвращаемой ссылкой сразу копируется в k (тип int), и если это произойдёт, то в дальнейшем k будет вполне валидным. А если мы напишем int& k = func('1') то будет копирована сама ссылка, и даже если в момент копирования значение было "валидным", то при дальнейшем её использовании никаких гарантий нет. В любом случае так писать нельзя.Ссылку возвращают, как правило, в методах класса (ссылку на поле класса) или когда это ссылка на один из параметров функции. В случае с классами, возвращать ссылку тоже опасно:
0
|
||||||
|
49 / 49 / 31
Регистрация: 07.10.2015
Сообщений: 170
|
||
| 20.11.2015, 12:38 [ТС] | ||
|
В коде поменял название функции, а в комментариях забыл.
0
|
||
|
183 / 181 / 66
Регистрация: 15.02.2015
Сообщений: 515
|
||
| 20.11.2015, 12:41 | ||
![]() Не по теме: вредный вы кошак
0
|
||
| 20.11.2015, 12:43 | |
|
0
|
|
|
49 / 49 / 31
Регистрация: 07.10.2015
Сообщений: 170
|
|||||||||||||
| 20.11.2015, 13:02 [ТС] | |||||||||||||
|
Т.е. допустим была в коде
0
|
|||||||||||||
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
||
| 20.11.2015, 13:05 | ||
int разницы не будет. Для пользовательских типов возможны нюансы из-за наличия функций-членов. Можно будет вызвать только const версии.
0
|
||
|
49 / 49 / 31
Регистрация: 07.10.2015
Сообщений: 170
|
||
| 20.11.2015, 14:24 [ТС] | ||
|
И в примере с массивами это есть. Но вообще, да. Искал-то разницу именно для типа int как выходного значения. Добавлено через 1 час 5 минут Всем спасибо, разобрался.
0
|
||
| 20.11.2015, 14:24 | |
|
Помогаю со студенческими работами здесь
20
Пусть объявлена функция void f(int i,int &j){.}. Параметр j является параметром Как передать 0 в функцию типа f (int, int&)
в чем разница между int a и int *a? Чем отличается int от signed int? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|