ポインター
紹介
この文書はWaveのポインター活用方式について説明する文書です。 Waveは低レベルシステムプログラミングをサポートする言語として、明示的なメモリアドレス操作を可能にするためにポインタ機能を提供します。 ポインターは特定の タイプのメモリアドレスを指す変数であり、これを通じて値への直接的なアクセス及び修正が可能です。
ポインター宣言
Waveでポインターはptr<タイプ>
形式で宣言します。 例えば、整数型ポインターは次のように宣言できます:
var p: ptr<i32>;
この宣言は、i32
型の値を指すポインタp
を生成します。
ポインタ初期化
ポインタは、変数のアドレスを&
演算子を使用して初期化できます。
var a: i32 = 10;
var p: ptr<i32> = &a;
ここで&a
は変数a
のメモリアドレスを意味し、p
はそのアドレスを指すポインタになります。
ポインタ逆参照
ポインタが指す値を読み取ったり変更したりするには、deref
キーワードを使用します。 これを逆参照と言います。
var a: i32 = 10;
var p: ptr<i32> = &a;
println("{}", deref p); // 10 出力
deref p = 20;
println("{}", a); // 20 出力
NULLポインタ
Waveでは、ヌルポインタをnull
キーワードで表現します。
ポインタ変数はnull