Russian Belarusian English German Japanese Ukrainian

Операции адресации (&) и косвенной адресации (*)

CuBook3.55

При работе с указателями и при передаче в функции параметров по ссылке используются операции (&) - адресации, и (*) - косвенной адресации или разыменования.
Например, указатель целого типа name описывается при косвенной адресации (разыменования) так:
int *name;
Унарная операция &, примененная к некоторой переменной, показывает, что нам нужен адрес этой переменной, а не ее текущее значение. Если переменная name объявлена как указатель, то оператор присваивания:
name = &x;
означает: "взять адресс переменной x и присвоить его значение переменной-указателю name".
 
Косвенная адресация (разыменование) *, примененная к указателю, обеспечивает доступ к содержимому ячейки памяти, на которую ссылается указатель. Например, *name можно описать словами как "то, что содержится по адресу, на который указывает name".
Указатели могут использоваться в выражениях. Если. например, переменная name указывает на целое x, то *name может во всех случаях использоваться вместо x:
*name+1; //увеличивает x на единицу
*name=0; //равносильно x=0
Два оператора присваивания:
name=&x;
y=*name;
выполняет то же самое, что и один оператор y=x.
Польза от применения указателей в таких ситуациях, мягко выражаясь, невелика.
Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter

Добавить комментарий