目次→
演算子→
ポインタ演算子→
Operator * (Value of)←オリジナル・サイト
ポインタの逆参照です。
構文:
用法:
result = * rhs
または
* rhs = value
パラメタ:
戻り値:
アドレス rhs に格納された値への参照を、返します。
記述:
演算子 * (の値) は、アドレスに格納された値の参照を返します。このため、逆参照演算子と呼ばれます。
演算対象は、いかなる方法でも、変更されません。
Any Pointer を除いて、どんな型の
Pointer も、逆参照できます。
参照として、この演算子の結果を、代入の左側で、使用できます。
この演算子は、null ポインターの場合に使わないでください。参照が定義されていない(実行時エラーを引き起こす)からです。
これ以外の場合、ユーザーは、ポインター値が、有効なメモリーへのアクセスを誘導することを、確認する必要があります。
それ以外の場合、結果は未定義です。
この演算子を、ユーザ定義型のために、多重定義することができます。
例:
'このプログラムは、ポインタが示す値を利用するために * を使う例です。
Dim a As Integer
Dim pa As Integer Ptr
pa=@a 'ここで、'a' で、整数 ptr を指すのに、@ 演算子を使います。
' この場合、'a' は、標準の整数変数です'。
a=9 'ここで、'a' に値 9 を与えます。
Print "'a' の値は:";*pa
'ここで、ポインタを使って、'a' の値を表示します
*pa = 1 'ここで、'a' の値を変えるのに、ポインタを使います
Print "'a' の新しい値は:";a
'ここで、'a' の新しい値を表示します
Print
Dim s As String
Dim ps As String Ptr
ps = @s 'ここで、's' で、整数 ptr を指すのに、@ 演算子を使います。
' この場合、's' は、文字列変数です'。
s = "String" 'ここで、's' に値 "String" を与えます。
Print "'s' の値*psは:";*ps
'ここで、ポインタを使って、's' の値を表示します
Print "'ps' の値は:";ps
*ps = "Data" 'ここで、's' の値を変えるのに、ポインタを使います
Print "'s' の新しい値*psは:";s
'ここで、's' の新しい値を表示します
Print "'ps' の値は:";ps
Sleep
出力:
'a' の値は: 9
'a'の新しい値は: 1
's' の値*psは:String
'ps' の値は:1703616
's' の新しい値*psは:Data
'ps' の値は:1703616
方言差:
QBからの違い:
参照: