Зміст курсу
Основи C
Основи C
Посилання та Розіменування
Вказівники побудовані навколо двох операторів:
- Оператор взяття адреси
&
. - Оператор розіменування
*
.
Оператор взяття адреси
Оператор взяття адреси, представлений символом &
, дозволяє нам безпосередньо взаємодіяти з оперативною пам'яттю комп'ютера. Використання &
дозволяє отримати фактичну адресу в пам'яті об'єкта.
Main
#include <stdio.h> int main() { int x = 100; printf("Value of variable: %d\n", x); printf("Address of variable into RAM: %p\n", &x); // using reference operator `&` for getting address return 0; }
Примітка
%p
- це специфікатор формату, що використовується для адрес (вказівник).
Адреси зазвичай виражаються у шістнадцятковій нотації.
Уявіть оператор &
як визначення адреси вашого дому за вашим ім'ям.
Оператор Дереференції
Навпаки, оператор *
дає вам ім'я мешканця, коли вам відома його адреса. Отже, як ми можемо використовувати цей оператор, якщо ми не працюємо безпосередньо з адресами? Якщо у вас є вираз на кшталт &x
, який повертає адресу змінної x
, застосування до нього оператора *
(*&x
) дає вам значення змінної, що зберігається за цією адресою.
Примітка
По суті,
*&x
те саме, що йx
.
Main
#include <stdio.h> int main() { int x = 100; printf("Value of variable: %d\n", x); printf("Address of variable in RAM: %p\n", &x); // using reference operator `&` printf("Dereferencing address of variable: %d", *(&x)); // using dereference operator `*` return 0; }
Примітка
Не плутайте оператор дереференції (
*x
) з оператором множення (x*y
).
Swipe to show code editor
- Створіть масив цілих чисел з 5 елементів і заповніть його.
- Отримайте адресу третього елемента.
- Збільшіть адресу третього елемента (тобто адреса + 1).
- Спробуйте дереференціювати адресу, отриману на попередньому кроці.
Дякуємо за ваш відгук!
Посилання та Розіменування
Вказівники побудовані навколо двох операторів:
- Оператор взяття адреси
&
. - Оператор розіменування
*
.
Оператор взяття адреси
Оператор взяття адреси, представлений символом &
, дозволяє нам безпосередньо взаємодіяти з оперативною пам'яттю комп'ютера. Використання &
дозволяє отримати фактичну адресу в пам'яті об'єкта.
Main
#include <stdio.h> int main() { int x = 100; printf("Value of variable: %d\n", x); printf("Address of variable into RAM: %p\n", &x); // using reference operator `&` for getting address return 0; }
Примітка
%p
- це специфікатор формату, що використовується для адрес (вказівник).
Адреси зазвичай виражаються у шістнадцятковій нотації.
Уявіть оператор &
як визначення адреси вашого дому за вашим ім'ям.
Оператор Дереференції
Навпаки, оператор *
дає вам ім'я мешканця, коли вам відома його адреса. Отже, як ми можемо використовувати цей оператор, якщо ми не працюємо безпосередньо з адресами? Якщо у вас є вираз на кшталт &x
, який повертає адресу змінної x
, застосування до нього оператора *
(*&x
) дає вам значення змінної, що зберігається за цією адресою.
Примітка
По суті,
*&x
те саме, що йx
.
Main
#include <stdio.h> int main() { int x = 100; printf("Value of variable: %d\n", x); printf("Address of variable in RAM: %p\n", &x); // using reference operator `&` printf("Dereferencing address of variable: %d", *(&x)); // using dereference operator `*` return 0; }
Примітка
Не плутайте оператор дереференції (
*x
) з оператором множення (x*y
).
Swipe to show code editor
- Створіть масив цілих чисел з 5 елементів і заповніть його.
- Отримайте адресу третього елемента.
- Збільшіть адресу третього елемента (тобто адреса + 1).
- Спробуйте дереференціювати адресу, отриману на попередньому кроці.
Дякуємо за ваш відгук!