通信用語の基礎知識 日本文化チャンネル桜二千人委員会 戻る

通常PC用 / 人気 更新 今日 カテ
電子計算機 > 仕様・構造 > ソフトウェア > プログラミング言語 > 言語仕様
ポインター渡し
辞書:電算用語の基礎知識 プログラミング仕様編 (PTPROGS)
読み:ポインターわたし
品詞:名詞

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]);

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

ポインター

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

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

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

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

[再検索] [戻る]


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