🌻天国にいけるC++言語入門🌻 進化し続けるオブジェクト指向プログラミング ver3.2307
参照とは変数のことでありint&型の参照変数にはint型の変数を代入することができます このときint&型の参照変数はint型の変数そのものをあらわすことになります
参照とは変数のことでありint&型の参照変数にはint型の変数を代入することができます このときint&型の参照変数はint型の変数そのものをあらわすことになります
参照とは変数のことでありint&型の参照変数にはint型の変数を代入することができます このときint&型の参照変数はint型の変数そのものをあらわすことになります
ソーラー「今日は参照というものについて学んでみよ~うかな😊」
マックス「参照・・・? 参照渡し(ポインタ渡し)のことだったか?」
ソーラー「自作関数の引数となっているポインタ変数に
main関数内で定義された変数のアドレスを代入するのが
参照渡し(ポインタ渡し)
でした
それと
参照はちょっと意味が違います
一体
参照とは
どういう意味なのかな😊」
マックス「何かを参照しているのか?」
ソーラー「
参照とは変数のことなんです
そう
参照変数という変数を
略して参照と呼んでいるんです 」
マックス「参照とは変数なのかいな?」
ソーラー「そうなんです
例えば
変数である
int&型の参照変数bは
bのint&型の参照変数宣言
int& b;
により生成されます
このb
が
int&型の参照変数なんです
そして
int&型の参照変数bにはint型の変数を代入することができます
float&型の参照変数cなら
cのfloat&型の参照変数宣言
float& c;
により生成されます
このc
が
float&型の参照変数なんです
そして
float&型の参照変数bにはfloat型の変数を代入することができます
たとえば
変数宣言
int a;
により
変数aが生成されているとします。
このとき
int& b=a;
のように
int&型の参照変数bにはint型の変数aを代入して初期化することができます
int&型の参照変数bは
数値データ
1
や
2
でなく
int型の変数aを代入することで初期化できるのがポイントなんです
実は
bのint&型の参照変数宣言
int& b;
を行うときは
int& b=a;
のように
変数aを代入して💖初期化を同時に💖実行する必要があるんだよ
int& b;
b=a;
のように
int& b;
と
b=a;
を分けて実行すると
(アクティブ) E0252 参照 変数 "b" には初期化子が必要です
エラー C2530 'b': 参照が初期化されずに宣言されています。
のように
ビルドエラーが表示されるから
注意が必要だね。
てんC「
int& b=a;
のように
int&型の参照変数bにint型の変数aを代入することができるのですか?
この
int& b=a;
では
一体 なにがおこなわれているのでしょうか?
参照変数とはどのような働きをする変数なのですか?」
ソーラー「
int& b=a;
が実行されると
int型の変数aが代入されたint&型の参照変数bは
int型の変数aそのものを表すことになります
以前見てきたように
int型の変数a
のアドレス&aを
ptaのint*型のポインタ変数宣言
int* pta;
により生成されたポインタ変数
pta
に
pta=&a;
と代入すると
*ptaは変数aそのもの
を表すことになります
それと似たような感じで
int型の変数a
を
int&型の参照変数b
に
int& b=a;
と代入して初期化すると
参照変数bは変数aそのものを表すことになります
ちょうど
同じメモリに
a
と
b
という名前が付けられていることになります
このとき
変数aに1を代入すれば
参照変数bにも1が代入されることになり
変数aに2を代入すれば
参照変数bにも2が代入されることになり
逆に
参照変数bに1を代入すれば
変数aにも1が代入されることになり
参照変数bに2を代入すれば
変数aにも2が代入されることになります」
そのプログラムは次のようになります。
👇
#include <iostream>
using namespace std;
int main() {
int a;
int& b = a;
a = 1;
printf("%d\n", a);
printf("%d\n", b);
a = 2;
printf("%d\n", a);
printf("%d\n", b);
b = 1;
printf("%d\n", a);
printf("%d\n", b);
b = 2;
printf("%d\n", a);
printf("%d\n", b);
return 0;
}
ビルド実行結果
1
1
2
2
1
1
2
2
ソーラー「参照変数のしくみがわかったかな?」」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます