русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Доступ до змінної за вказівником


Дата додавання: 2014-04-22; переглядів: 908.


Припустімо, що ми не знаємо імені змінної, але знаємо її адресу. Чи можемо ми дістати доступ до цієї змінної?

Існує спеціальний запис, призначений для доступу до значення змінної, використовуючи її адресу замість імені. В програмі 12.3 показано, як це можна зробити.

#include<iostream.h>

#include<conio.h>

#include<stdio.h>

#include<bios.h>

int main()

{clrscr();

int var1=11;

int var2=22;

cout<<"&var1="<<&var1<<endl;

cout<<"&var2="<<&var2<<endl<<endl;

int* ptr;

ptr=&var1;

cout<<*ptr<<endl;

ptr=&var2;

cout<<*ptr<<endl;

 

bioskey(0);

 

return 0;

}

Ця програма дуже схожа на попередню з тією різницею, що замість виведення на екран адреси, що зберігається в змінній, ми виводимо значення, яке за цією адресою зберігається. Вираз *ptr дозволяє нам одержати значення змінних var1 і var2. Зірочка, яка стоїть перед іменем змінної, називається операцією розіменування.

Вказівники можна використовувати не тільки для одержання значення змінної, на яку він вказує, але і для виконання дій з цими змінними. Програма 12.4 використовує вказівник для присвоєння значення одній змінній, а потім іншій.

#include<iostream.h>

#include<conio.h>

#include<stdio.h>

#include<bios.h>

int main()

{clrscr();

int var1,var2;

int* ptr;

ptr=&var1;

*ptr=37;

var2=*ptr;

cout<<var2<<endl;

bioskey(0);

return 0;

}

Програма 12.4

Зірочка, що використовується в операції розіменування – не те саме, що зірочка, яка використовується при оголошенні вказівника. Операція розіменування випереджає ім’я змінної і означає значення, що знаходиться в змінній, Натомість зірочка в оголошенні вказівника означає вказівник на.

int* ptr; //оголошення, вказівник на

*ptr=37; //розіменування

Доступ до значення змінної, що зберігається за адресою, з використанням операції розіменування, називається непрямим доступом або розіменуванням вказівника.

 


<== попередня лекція | наступна лекція ==>
Змінні вказівники | Вказівник на void


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн