Косвенный оператор: *
* cast-expression
Заметки
Унарный косвенный оператор (*****разыменовывает указатель); иными словами, он преобразовывает значение указателя на l-значению.Операнд оператора косвенного обращения должен быть указателем на тип.Результат выражения косвенного обращения тип, из которого является тип указателя.Использование * оператор в этом контексте отличается от его значение binary, как оператор умножения.
Если точки операнда функций, результат указатель функции.Если он указывает на место хранения, то результат l-значение, обозначающая место хранения.
Косвенный оператор может использоваться кумулятивно для разыменования указателей к указателям.Примеры.
// expre_Indirection_Operator.cpp
// compile with: /EHsc
// Demonstrate indirection operator
#include <iostream>
using namespace std;
int main() {
int n = 5;
int *pn = &n;
int **ppn = &pn;
cout << "Value of n:\n"
<< "direct value: " << n << endl
<< "indirect value: " << *pn << endl
<< "doubly indirect value: " << **ppn << endl
<< "address of n: " << pn << endl
<< "address of n via indirection: " << *ppn << endl;
}
Если значение указателя недопустимо, результат становится неопределенным.Ниже приведены некоторые наиболее распространенные условия, что сделает значение указателя.
Указатель на указатель null.
Указатель определяет адрес локального элемента, который не является видимым во время ссылки.
Указатель указывает адрес, которое неверно выравнивает для указанного типа объекта.
Указатель указывает адрес не используемый при выполнении программой.
См. также
Ссылки
Выражения с унарными операторами
Operator precedence and Associativity