Як ми це вже знаємо 'що таке покажчик' , покажчик — це змінна, яка зберігає адресу іншої змінної. Оператор розіменування також відомий як оператор непрямості, який позначається (*). Коли оператор непрямості (*) використовується зі змінною покажчика, він відомий як розіменування покажчика. Коли ми розіменовуємо вказівник, буде повернено значення змінної, на яку вказує цей вказівник.
Чому ми використовуємо покажчик розіменування?
Розіменування вказівника використовується з таких причин:
рядок підрядок java
- Його можна використовувати для доступу або маніпулювання даними, що зберігаються в місці пам'яті, на яке вказує вказівник.
- Будь-яка операція, застосована до розіменованого покажчика, безпосередньо вплине на значення змінної, на яку він вказує.
Давайте розглянемо наступні кроки для розіменування вказівника.
- Спочатку ми оголошуємо цілу змінну, на яку вказує покажчик.
int x =9;
- Тепер ми оголошуємо цілочисельну змінну покажчика.
int *ptr;
- Після оголошення цілочисельної змінної-вказівника ми зберігаємо адресу змінної 'x' до змінної-вказівника 'ptr'.
ptr=&x;
- Ми можемо змінити значення змінної 'x' шляхом розіменування покажчика 'ptr', як показано нижче:
*ptr =8;
Рядок вище змінює значення змінної «x» з 9 на 8, оскільки «ptr» вказує на розташування «x», а розіменування «ptr», тобто *ptr=8 оновить значення x.
Давайте об’єднаємо всі описані вище кроки:
np.mean
#include int main() { int x=9; int *ptr; ptr=&x; *ptr=8; printf('value of x is : %d', x); return 0;}
Вихід
Розглянемо інший приклад.
#include int main() { int x=4; int y; int *ptr; ptr=&x; y=*ptr; *ptr=5; printf('The value of x is : %d',x); printf(' The value of y is : %d',y); return 0; }
У наведеному вище коді:
- Ми оголошуємо дві змінні «x» і «y», де «x» містить значення «4».
- Ми оголошуємо змінну-вказівник 'ptr'.
- Після оголошення змінної-покажчика ми призначаємо адресу змінної 'x' покажчику 'ptr'.
- Оскільки ми знаємо, що 'ptr' містить адресу змінної 'x', тому '*ptr' те саме, що 'x'.
- Ми присвоюємо значення 'x' до 'y' за допомогою змінної 'ptr', тобто y=* птр замість використання змінної 'x'.
Примітка: згідно з нами, якщо ми змінимо значення 'x', то значення 'y' також буде змінено, оскільки покажчик 'ptr' містить адресу змінної 'x'. Але цього не відбувається, оскільки 'y' зберігає локальну копію значення '5'.
Вихід
Розглянемо інший сценарій.
java версія linux
#include int main() { int a=90; int *ptr1,*ptr2; ptr1=&a; ptr2=&a; *ptr1=7; *ptr2=6; printf('The value of a is : %d',a); return 0; }
У наведеному вище коді:
- Спочатку ми оголошуємо змінну 'a'.
- Потім ми оголошуємо два покажчики, тобто ptr1 і ptr2.
- Обидва покажчики містять адресу змінної 'a'.
- Ми призначаємо значення «7» для *ptr1 і «6» для *ptr2. Кінцевим значенням «а» буде «6».
Примітка. Якщо у нас є кілька вказівників, які вказують на те саме місце, то зміни, внесені одним вказівником, будуть такими ж, як і іншим вказівником.
Вихід