通信用語の基礎知識 IPv4
戻る
参加者募集中

ポインター渡し

辞書:電算用語の基礎知識 プログラミング仕様編 (PTPROGS)
読み:ポインターわたし
品詞:名詞
2013/01/30 作成
2013/01/31 更新

C/C++などにおける、関数への引数の渡し方の一つ。

Cでは、値そのものか、値へのポインターのいずれかを引数として渡すことができる。

前者を値渡し、後者をポインター渡しという。

使用例

ポインター渡しで受ける側の関数は、引数をポインター変数として定義する。

int hoge(int *var) { return *var; }

関数を呼ぶ側は、原則として参照演算子(アドレス演算子)であるアンパサンド記号(&)を変数名に冠してアドレスの形にする必要がある。

hoge(&foo);

配列

配列変数の場合、&は付けても付けなくても良い。

これは、C99なら§6.3.2.1などに記載があるが、配列は、普通に使えば殆どポインターに変換される存在だからである。

従って配列変数に限り、以下3つの関数呼び出しは、全て同じアドレスが渡される。

int foo[10];

hoge(foo);

hoge(&foo);

hoge(&foo[0]);

&を付ければ手動でポインターになるが、付けなくても自動でポインターになる。

ポインター

ポインターを引数として与える場合、&は付けなくて良い。むしろ、付けてはいけない。

但し、ポインター変数を引数に取る関数にポインター変数を渡すのは、ポインター渡しではなく値渡しである。

従って、呼ばれた側の関数でポインター変数を操作しても、呼び出し元のポインター変数は変化しない。

関連する用語
ポインター
値渡し
参照渡し

コメントなどを投稿するフォームは、日本語対応時のみ表示されます


KisoDic通信用語の基礎知識検索システム WDIC Explorer Version 7.03 (16-May-2019)
Search System : Copyright © Mirai corporation
Dictionary : Copyright © WDIC Creators club