Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Посилання та Розіменування | Вказівники
Основи C

bookПосилання та Розіменування

Вказівники базуються на двох операторах:

  • Оператор взяття адреси &.
  • Оператор розіменування *.

Оператор взяття адреси

Оператор взяття адреси, позначений як &, дозволяє безпосередньо працювати з оперативною пам’яттю комп’ютера. Використання & дає змогу отримати фактичну адресу в пам’яті об’єкта.

Main.c

Main.c

copy
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; }
Note
Примітка

Форматний специфікатор, який використовується для виведення адрес (вказівників), — це %p.

Адреси зазвичай записуються у шістнадцятковій системі числення.

Оператор розіменування

Оператор * повертає значення змінної за вказаною адресою. Як же використовувати цей оператор, якщо ми не працюємо безпосередньо з адресами? Якщо у вас є вираз на кшталт &x, який повертає адресу змінної x, застосування до нього оператора * (*&x) повертає значення змінної, що зберігається за цією адресою.

Note
Примітка

Фактично, *&x те саме, що й x.

Main.c

Main.c

copy
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; }
Note
Примітка

Не плутайте оператор розіменування (*x) з оператором множення (x*y).

Завдання

Swipe to start coding

  • Створення цілочисельного масиву з 5 елементів і його заповнення.
  • Отримання адреси третього елемента.
  • Збільшення адреси третього елемента та розіменування збільшеної адреси для виведення значення, на яке вона вказує.

Рішення

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 6. Розділ 2
single

single

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Suggested prompts:

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?

close

Awesome!

Completion rate improved to 2.63

bookПосилання та Розіменування

Свайпніть щоб показати меню

Вказівники базуються на двох операторах:

  • Оператор взяття адреси &.
  • Оператор розіменування *.

Оператор взяття адреси

Оператор взяття адреси, позначений як &, дозволяє безпосередньо працювати з оперативною пам’яттю комп’ютера. Використання & дає змогу отримати фактичну адресу в пам’яті об’єкта.

Main.c

Main.c

copy
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; }
Note
Примітка

Форматний специфікатор, який використовується для виведення адрес (вказівників), — це %p.

Адреси зазвичай записуються у шістнадцятковій системі числення.

Оператор розіменування

Оператор * повертає значення змінної за вказаною адресою. Як же використовувати цей оператор, якщо ми не працюємо безпосередньо з адресами? Якщо у вас є вираз на кшталт &x, який повертає адресу змінної x, застосування до нього оператора * (*&x) повертає значення змінної, що зберігається за цією адресою.

Note
Примітка

Фактично, *&x те саме, що й x.

Main.c

Main.c

copy
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; }
Note
Примітка

Не плутайте оператор розіменування (*x) з оператором множення (x*y).

Завдання

Swipe to start coding

  • Створення цілочисельного масиву з 5 елементів і його заповнення.
  • Отримання адреси третього елемента.
  • Збільшення адреси третього елемента та розіменування збільшеної адреси для виведення значення, на яке вона вказує.

Рішення

Switch to desktopПерейдіть на комп'ютер для реальної практикиПродовжуйте з того місця, де ви зупинились, використовуючи один з наведених нижче варіантів
Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 6. Розділ 2
single

single

some-alt