ポインター
紹介
この文書は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 出力