間接演算子: *
* cast-expression
解説
単項間接演算子 () は * ポインターを逆参照します ; つまり左辺値へのポインター値を変換します。間接演算子のオペランドは型へのポインターである必要があります。間接の式の結果はポインター型の派生型です。このコンテキストの * の演算子を使用すると乗算の二項演算子として意味が異なる場合があります。
関数のオペランドの点は関数呼び出しの結果。は格納場所を指す場合結果は格納場所を指定する左辺値です。
間接演算子はポインターへのポインターを逆参照するには累積で使用される場合があります。次に例を示します。
// 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 ポインターです。
ポインターが参照時に表示されていないローカル項目のアドレスを指定します。
不正なポインターが指すオブジェクトの種類に配置されているアドレスを指定します。
ポインターは実行プログラムで使用されていないアドレスを指定します。