This repository has been archived on 2023-05-13. You can view files and clone it, but cannot push or open issues or pull requests.
mipt_cpp/seminar01_overload/classroom_tasks/code/01ref/00ref.cpp

60 lines
2.5 KiB
C++
Raw Normal View History

2022-09-01 16:37:41 +03:00
#include <iostream>
using std::cout, std::endl;
/*
В C++ вводится понятие нового типа под названием Ссылка
Ссылку можно рассматривать как новое имя для объекта.
Ссылку также можно рассматривать как удобный указатель, который автоматически разыменовывается
(На самом деле под капотом ссылка и является указателем)
Ссылка объявляется с помощью значка & после имени типа.
Не стоит путать & используемый при объявлении ссылки с & используемым для нахождения адреса переменной.
Это разные &
Пусть есть переменная a
int a = 10;
Давайте создадим указатель и ссылку на эту переменную и увеличим её на 1 с помощью указателя/ссылки
Используем указатель: Используем ссылку:
int* p = &a; int& r = a;
*p += 1; r += 1;
Ссылкой пользоваться удобно, так как:
1) При создании ссылки нам не нужно передавать ей адрес
Просто передаём ей саму переменную, а ссылка уже сама находит её адрес
2) Не нужно её разыменовывать, она всегда разыменовывается сама
*/
int main()
{
int a = 10;
int& r = a;
r += 1;
cout << a << endl;
}
/*
Задачи:
1) Используйте ссылку r, чтобы увеличить a в 2 раза
Проверьте, как изменилась a, напечатав её
2) Используйте ссылку r, чтобы присвоить a число 100
Проверьте, как изменилась a, напечатав её
3) Создайте переменную b типа float, равную 1.5
Создайте ссылку на b и используйте эту ссылку, чтобы возвести b в квадрат
*/