Хелпикс

Главная

Контакты

Случайная статья





Указатели



Указатели

Каждая переменная это место в памяти, которое имеет свой адрес. Узнать его можно через амперсант (&) (также называется адресом оператора), который указывает на адрес в памяти.

 

 

   int x = 1;   cout << &x << “\n”;   // Outputs “0x6dfeec”

 

 

Указатель - это переменная, которая хранит адрес другой переменной. Все указатели разделяют один тип данных – шестнадцатеричное число, которое представляет адрес области памяти.

 

Указатель – это переменная, которая как и другие переменные, должна быть объявлена до её использования. Знак звёздочки (*) используется для объявления указателя.

Также как и с переменными, мы присваиваем указателям имя и определяем тип, на который они указывают.

 

 

   int x = 1;  int *a;   a = &x;   cout << a << “\n”;
   // Outputs “0x6dfeec”

 

Существует два оператора для указателей: оператор взятия адреса (&): возвращает адрес области памяти его операнда. Косвенное обращение к объекту (или разадресация) (*): возвращает значение переменной, размещённое по определённому операндом адресу.

 

   int x = 1;    int *a;   a = &x;    cout << x << “\n”;   cout << a << “\n”;
cout << *a << “\n”;

// Outputs “ 1 0x6dfeec 1 ”

 

Оператор разадресация в принципе является иначе названным именем для переменной, на которую указывает указатель. Все три приведённые выражения по сути равны и дают одинаковый результат. Т.е p указывает на переменную x, разадресация указателя (*p) представляет собой тоже самое, что и переменная x.

 

   int x = 5;   int *p = &x;
   x = x + 4;
   x = *p + 4;   *p = *p + 4;

 

Меняя значение указателя *p значение переменной тоже меняется. После любой из этих операций значение x станет равно 9.

 

 



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.