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

Работа со ссылками

30.10.2023, 13:56. Показов 552. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Почему в этом коде мы в функцию swap передаем ссылки, а при её применении в мэйне передаём просто значение переменных, хотя изначально требуется тип ссылка (int&)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 
void swap(int& a, int& b){
  int t = a;
  a = b;
  b = t;
 
}
 
 int main(){
    
    int a = 2;
    int b = 1;
 
    swap(a,b);
 
    std::cout << a << b << '\n';
 
 }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.10.2023, 13:56
Ответы с готовыми решениями:

Работа со ссылками
Помогите кто-нибудь с этим заданием: переменной Z присвоить значение наибольшего из элементов матрицы {ai,j}4,4, расположенные выше главной...

Работа с ссылками
Нужна помощь студенту 1. Объявите (в отельном заголовочном файле) и реализуйте (в другом файле) процедуры (они не возвращают...

Работа со ссылками
#include &quot;stdafx.h&quot; #include &quot;stdio.h&quot; int _tmain() { float v1,v2; float S,t; printf(&quot;vvedite rastoyanie i vremya\n&quot;); ...

4
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
30.10.2023, 14:08
Передаются ссылки.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6210 / 2907 / 1044
Регистрация: 01.06.2021
Сообщений: 10,716
30.10.2023, 17:01
nmcf, ТС, наверное, имеет в виду то, что когда у нас
C++
1
2
3
4
5
6
void swap(int *x, int *y)
{
    int z = *x;
    *x = *y;
    *y = z;
}
мы вызываем функцию через
C++
1
swap(&a, &b);
а не через
C++
1
swap(a, b);
тогда как, если у нас
C++
1
2
3
4
5
6
void swap(int& x, int& y)
{
    int z = x;
    x = y;
    y = z;
}
то мы вызываем через
C++
1
swap(a, b);
ТС думает, что вызвать
C++
1
swap(a, b);
можно лишь когда функция выглядит так
C++
1
2
3
4
void swap(int x, int y)
{
    // ...
}
1
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
30.10.2023, 17:03
Royal_X, возможно.
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
30.10.2023, 22:37
Цитата Сообщение от looker Man Посмотреть сообщение
Почему в этом коде мы в функцию swap передаем ссылки, а при её применении в мэйне передаём просто значение переменных, хотя изначально требуется тип ссылка (int&)
Потому, что в С++ разрешено неявное преобразование типа из lvalue типа T в ссылку на этот тип. При этом, учитывая то, что передача фактического параметра имеет семантику инициализации то ясно, что ссылка инициализируется левосторонним значением, переданным в функцию. То есть, это аналогично простой инициализации неконстантной ссылки в коде:
C++
1
2
int b = 123;
int &a = b;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.10.2023, 22:37
Помогаю со студенческими работами здесь

Работа с ссылками
Помогите, вот составил программу, но надо через ссылки,а я не могу.Вот условие: Найти значение выражения...

Работа со ссылками
начал изучать ссылки в с++ вот для примера: a=1, &amp;b=a, a+=2, тогда b=3 а если b = 7 , тогда a = ?

Работа с константными ссылками
Здравствуйте все. Я не понимаю как мне работать с константными ссылками на класс. У меня есть два класса: #include &lt;iostream&gt; ...

Работа с указателями и ссылками
Немного мутный вопрос: каким образом происходит работа с указателями и ссылками? Допустим, есть такой код: int a = 10; int* b =...

Map, List, работа со ссылками на экземпляры классов
Здравствуйте! Есть такой вопрос: если ли разница в том, каким образом делать .push_back(buf) в список listOfFreinds ? Я представил там оба...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru