ポインタ

「ポインタ」の編集履歴(バックアップ)一覧はこちら

ポインタ」(2008/02/14 (木) 00:49:08) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

*ポインタ **ポインタとは ポインタとは、値のアドレスを保持するための変数です。 **ポインタの宣言 ポインタ型を表すには、「*」を使います(*はクリーネスターとかいうこともあります)。 int * ptr_int; /* ptr_int は int 型の値へのアドレスを保持するポインタ */ int ** ptr_ptr_int; /* ptr_ptr_int は int 型のポインタのポインタ */ **値とアドレス すべての値にはアドレスが存在します。勿論ポインタにも存在します。 アドレスとはその値の存在する場所を表す整数値です。 アドレスを取り出すにはアドレス演算子「&」を使います。 int num = 0; int *ptr = # アドレスのさしている値を取り出す時は、間接演算子「*」を使います。 *ptr = 1; /* num には 1 が代入される。ptr 自体は変化しない */ **関数ポインタ 関数のアドレスを保持するポインタを、関数ポインタと呼ぶ。 これにより、関数の実体を持ち運ぶことはできないが、それを擬似的に再現することができる。 (実体を持ち運ぶ必要性はほとんどの場合ないのでこれで充分) int 型の引数を取り、int 型を返す関数のポインタは以下のように宣言される。 int (*func_ptr)(int); 以下のように使用する。 int add_one(int n){ return n + 1; } int (*func_ptr)(int); func_ptr = &add_one; int i = (*func_ptr)(1); /* i には 2 が代入される */ 関数のアドレスは、アドレス演算子を使わなくても得る事ができる。 また、関数ポインタ越しに関数を呼ぶこともできるため、上のコードは以下のように書き換えることができる。 func_ptr = add_one; int i = func_ptr(1); 初心者は分からなくてもいいです。 ゲームプログラミングにおいては、タスクシステムなどで使用することはあるものの、なければならないということはないです。

表示オプション

横に並べて表示:
変化行の前後のみ表示: