ポインタの参照渡し(*&)について

一瞬、なんだこれ?って思ったのでまとめておく。

一言でいうなら、ポインタを参照で渡しているだけ。

コードで説明した方が早い。

void nochange( int* pointer ) //passed by value
{
   pointer++; // change will be discarded once function returns
}

void change( int*& pointer ) //passed by reference
{
   pointer++; // change will persist when function returns
}

つまり、関数内では同じように使えるけど、ポインタの参照渡しの場合、関数内でポインタのアドレスを進めたりしたら、呼び出し元のポインタのアドレスも進んじゃいますよってこと。

参考:https://stackoverflow.com/questions/5789806/meaning-of-and-in-c

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です