File tree Expand file tree Collapse file tree 1 file changed +33
-0
lines changed Expand file tree Collapse file tree 1 file changed +33
-0
lines changed Original file line number Diff line number Diff line change
1
+ #include < iostream>
2
+
3
+ int main () {
4
+
5
+ int a = 3 ;
6
+
7
+ // указатель
8
+ int * pointer_to_a = &a; // указатель на 'a'
9
+
10
+ // ссылка: ссылка & на int
11
+ int & reference_to_a = a;
12
+
13
+ // Ссылка - это почти указатель, но удобнее.
14
+ // Различия:
15
+ // 1. Не нужно использовать оператор разыменования * для получения доступа к данным по ссылке.
16
+ // 2. Ссылка является неизменяемым типом данных, ее сразу необходимо инициализировать (нет nullptr).
17
+ // 3. Ссылка - это alias (псевдоним) переменной.
18
+
19
+ // 1. Чтение данных по ссылке.
20
+ int var = reference_to_a; // эквивалентно: int var = *pointer_to_a
21
+
22
+ // 2. Запись данных по ссылке.
23
+ reference_to_a = 5 ; // эквивалентно: *pointer_to_a = 5
24
+
25
+ return 0 ;
26
+ }
27
+
28
+ /*
29
+ * Задания:
30
+ * 1. Можно ли изменить адрес памяти, на который ссылается ссылка?
31
+ * 2. Опишите ситуацию, когда использование ссылки целесообразно.
32
+ * 3. В чем разница между & слева и справа от знака =? int& = ... vs. ... = &var
33
+ */
You can’t perform that action at this time.
0 commit comments