System.Pointer
Delphi
type Pointer = ^Pointer;
C++
typedef void* Pointer; //
プロパティ
| 種類 | 可視性 | ソース | ユニット | 親 |
|---|---|---|---|---|
pointer typedef |
public | System.pas sysmac.h |
System | System |
説明
メモリ内のバイトのアドレスです。
void ポインタはメモリ内の 1 つのバイトのアドレスを表します。このようなポインタは、型情報が関連付けられていないため、逆参照できません。ただし、void ポインタを型付きポインタにキャストしてから逆参照することはできます。
指定子 register を付けて宣言された変数はメイン アドレス空間にないため、参照できません。
逆参照操作の結果は、次のように、ポインタ値によって異なります。
| ポインタ値 | 逆参照の結果 |
| データのアドレス | データ値になります。 |
| 関数/手続きのアドレス | 関数/手続きの呼び出しになります。 |
nil/NULL
|
エラーまたは例外を生成します。EAccessViolation を参照。 |
| 無効 | 結果は未定義です。ソフトウェア障害を表します。EInvalidPointer を参照。 |
ポインタ参照/逆参照演算子は以下のとおりです。
| Delphi | C++ | |
| 参照 | @object
|
&object
|
| 逆参照 | object_pointer^
|
*object_pointer
|
ポインタのサイズは、オペレーティング システムやプロセッサによって異なります。32 ビット プラットフォームでは、ポインタは 32 ビット アドレスとして 4 バイトで格納されます。64 ビット プラットフォームでは、ポインタは 64 ビット アドレスとして 8 バイトで格納されます。