Посилання та Розіменування
Вказівники базуються на двох операторах:
- Оператор взяття адреси
&. - Оператор розіменування
*.
Оператор взяття адреси
Оператор взяття адреси, позначений як &, дозволяє безпосередньо працювати з оперативною пам’яттю комп’ютера. Використання & дає змогу отримати фактичну адресу в пам’яті об’єкта.
Main.c
123456789101112#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.c
1234567891011121314#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 start coding
- Створення цілочисельного масиву з 5 елементів і його заповнення.
- Отримання адреси третього елемента.
- Збільшення адреси третього елемента та розіменування збільшеної адреси для виведення значення, на яке вона вказує.
Рішення
Дякуємо за ваш відгук!
single
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Can you explain the difference between the address-of and dereference operators with an example?
Why are memory addresses usually shown in hexadecimal?
Can you show how to use these operators in a simple code snippet?
Awesome!
Completion rate improved to 2.63
Посилання та Розіменування
Свайпніть щоб показати меню
Вказівники базуються на двох операторах:
- Оператор взяття адреси
&. - Оператор розіменування
*.
Оператор взяття адреси
Оператор взяття адреси, позначений як &, дозволяє безпосередньо працювати з оперативною пам’яттю комп’ютера. Використання & дає змогу отримати фактичну адресу в пам’яті об’єкта.
Main.c
123456789101112#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.c
1234567891011121314#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 start coding
- Створення цілочисельного масиву з 5 елементів і його заповнення.
- Отримання адреси третього елемента.
- Збільшення адреси третього елемента та розіменування збільшеної адреси для виведення значення, на яке вона вказує.
Рішення
Дякуємо за ваш відгук!
single