一瞬、なんだこれ?って思ったのでまとめておく。
一言でいうなら、ポインタを参照で渡しているだけ。
コードで説明した方が早い。
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
コメントを残す