🌻天国にいけるC++言語入門🌻 進化し続けるオブジェクト指向プログラミング ver3.2307
🌞自作関数15 自作関数void f(int x)のint xにmain関数で定義された変数aを代入しても変数aはmain関数のローカル変数のままです。
🌞自作関数15 自作関数void f(int x)のint xにmain関数で定義された変数aを代入しても変数aはmain関数のローカル変数のままです。
ソーラー 「ねえ、てんC 次のプログラムをみてみよう」
#include <iostream>
using namespace std;
// 👇このint x
void f(int x){
cout <<x << "をとりこみました。\n";
}
int main(){
f(1);
f(1);
f(1);
return 0;
}
ビルド実行結果
1をとりこみました。
1をとりこみました。
1をとりこみました。
ソーラー「
この自作関数内のint xはどの関数の
ローカル変数になるのかな?
自作関数fのローカル変数になるのかな?
それとも
main関数のローカル変数になるのかな?
main関数内で
f(1);と数値データ1を代入してるよね
それともグローバル変数なのかな?
👇このint xは・・・」
#include <iostream>
using namespace std;
// 👇このint x
void f(int x){
cout <<x << "をとりこみました。\n";
}
int main(){
f(1);
f(1);
f(1);
return 0;
}
プログラムの実行結果
1をとりこみました。
1をとりこみました。
1をとりこみました。
てんC 「この場合のint xは
main関数内でxの変数宣言、定義されておらず
自作関数void f(int x)の()内でxの変数宣言、定義がされているので
この場合
xは
自作関数fのローカル変数になります
その自作関数fの引数となっているローカル変数であるint xに1が代入されるという形で
main関数内でf(1);が実行されています」
ソーラー「では 次のプログラムをみてみようっかな?」
#include <iostream>
using namespace std;
void f(int x){
cout <<x << "をとりこみました。\n";
}
int main(){
int a=10;
f(a);
f(a);
f(a);
return 0;
}
ビルド実行結果
10をとりこみました。
10をとりこみました。
10をとりこみました。
ソーラー「
f(a);
f(a);
f(a);
ってなってるよね。
この場合
変数a、変数xはどの関数のローカル変数になるのかな?」
てんC「そうですね。
この場合
変数aはmain関数内で変数宣言されているので
main関数のローカル変数です
変数xは自作関数fの定義
👇
void f(int x){
cout <<x << "をとりこみました。\n";
}
👆
のvoid f(int x)の()内で変数宣言されているので
自作関数fのローカル変数です
そして
int xにaが代入される形で
f(a);と記述されても
変数aは自作関数fのローカル変数でなく
main関数のローカル変数のままです
f(a);では
int xに
変数aを代入して数値データ10を
変数xにわたしているのですが
変数aが自作関数fのローカル変数となったわけではありません
どうですか? ソーラーさん」
ソーラー 「ローカル変数同士は
お互い 別の関数の変数で
異なる関数内で変数宣言されたローカル変数は
別の関数内では使用することができなかったね
このように
main関数内で変数宣言された変数aを
自作関数fで変数宣言された変数xに代入して
変数aが格納している数値データをわたすことができるんだね」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます