【C++】参照
参照(reference)
- すべての面で変数の別名として動作する暗黙的なポインタ(implict pointer)
用途
- 参照を関数に渡すことができる
- 関数から参照を返すことができる
- 独立した参照を作成することができる
study127_1.cpp
#include <iostream> using namespace std; void f( int *n ); int main() { int i = 0; f(&i); cout << "iの新しい値:" << i << "\n"; return 0; } void f( int *n ) { *n = 100; }
Cの場合。 これは、f()がiのアドレスを引き渡していて、そのアドレスのところに100を代入しているので、iの値が変わる。
study127_2.cpp
#include <iostream> using namespace std; void f( int &n ); int main() { int i = 0; f(i); cout << "iの新しい値:" << i << "\n"; return 0; } void f( int &n ) { n = 100; }
C++ではこのように完結に書くことができる。
study129.cpp
#include <iostream> using namespace std; void swapargs( int &x, int &y ); int main() { int i, j; i = 10; j = 19; cout << "i:" << i << "、"; cout << "j:" << j << "\n"; swapargs( i, j ); cout << "交換後:"; cout << "i:" << i << "、"; cout << "j:" << j << "\n"; return 0; } // 参照の場合 void swapargs( int &x, int &y ) { int t; t = x; x = y; y = t; } // ポインタの場合 /*void swapargs( int *x, int *y ) { int t; t = *x; *x = *y; *y = t; }*/