[C/C++] 引数でポインタ渡し

この記事は3年以上前に書かれた記事です。情報が古い可能性があります。

よくやるんだけど、よく忘れるのでメモ。

void func(int a);

の a は、普通の値渡し。func() 内で引数を変更しても呼び出し元には影響しない。

void func(int *a);

の a はポインタ渡し。func() 内で引数を変更すると呼び出し元にも反映される。
この場合、呼び出しは、

int x;
func(&x);

とし、func() 内で引数 a を変更する場合は、

*a = 0;

などとする。

void func(int &a);

の a は参照渡し。
func() 内で引数を変更すると呼び出し元にも反映される。この場合、呼び出しは、

int x;
func(x);

とし、func() 内で引数 a を変更する場合は、

a = 0;

などとする。”&” や “*” はつけない。

タイトルとURLをコピーしました