Summary Files Commits Branches @commit @diff @stats
path: root / src / teaching / upp-2023 / week5 / revision.du
diff options
context:
space:
mode:
1 files changed, 12 insertions, 9 deletions
-rw-r--r--src/teaching/upp-2023/week5/revision.du21
diff --git a/src/teaching/upp-2023/week5/revision.du b/src/teaching/upp-2023/week5/revision.du
index 37c7c8d..c415f5a 100644
--- a/src/teaching/upp-2023/week5/revision.du
+++ b/src/teaching/upp-2023/week5/revision.du
@@ -1,4 +1,7 @@
-# Преговор - УПП, Седмица 5, 03.11.2023
+'def title Преговор - УПП, Седмица 5, 03.11.2023
+'def desc Преговор на материала
+
+# {title}
## Указатели
@@ -6,22 +9,22 @@
За да можем да определим къде дадено нещо е запазено, всяка клетка в паметта си има "адрес".
Адресът е едно цяло положително число.
-Можем да вземем адреса на дадена променлива с оператора [`&`]:
+Можем да вземем адреса на дадена променлива с оператора {` &}:
```cpp
double a = 3.14159;
std::cout << (&a) << std::endl;
-Tази програма ще върне адресът на променлива [`a`].
+Tази програма ще върне адресът на променлива {` a}.
След като имаме адрес, бихме искали да работим със стойността на този адрес.
-Това го правим с дерефериращия оператор [`*`]:
+Това го правим с дерефериращия оператор {` *}:
```cpp
double a = 3.14159;
std::cout << (*(&a)) << std::endl;
-Тази програма връща стойността на адреса на променлива [`a`].
+Тази програма връща стойността на адреса на променлива {` a}.
Променливи, които съдържат адреси се наричат указатели.
Синтаксисът на един указател е:
@@ -55,13 +58,13 @@ double *pointer2 = &a;
<ТИП> <ИМЕ>[N] = { <СТОЙНОСТ> }; // дефинира всички N елементи със <СТОЙНОСТ>
<ТИП> <ИМЕ>[N] = { <СТОЙНОСТ 1>, <СТОЙНОСТ 2>, ..., <СТОЙНОСТ M> }; // където M <= N
-Самото [`<ИМЕ>`] е указател, така че може да достъпваме стойности чрез указателна аритметика:
+Самото {` <ИМЕ>} е указател, така че може да достъпваме стойности чрез указателна аритметика:
```cpp
int arr[2] = { 83, 18 };
std::cout << (*(arr + 1)) << std::endl;
-Връща втория елемент, [`18`].
+Връща втория елемент, {` 18}.
Или чрез по-приятния синтаксис с квадратни скоби:
@@ -69,7 +72,7 @@ std::cout << (*(arr + 1)) << std::endl;
int arr[2] = { 83, 18 };
std::cout << (arr[1]) << std::endl;
-Двете неща са еквивалентни, тоест [`name[x]`] е еквивалентно на [`*(name + x)`].
+Двете неща са еквивалентни, тоест {` name[x]} е еквивалентно на {` *(name + x)}.
Когато един масив съдържа букви, наричаме го "низ" (string).
-За да не трябва да следим дължината на един низ в друга променлива и да трябва да я подаваме, винаги завършваме нашия низ на "терминаращата нула" - [`'\0'`].
+За да не трябва да следим дължината на един низ в друга променлива и да трябва да я подаваме, винаги завършваме нашия низ на "терминаращата нула" - {` '\0'}.