おさらい 自作関数newmadefunction(int x);が実行されている間は ローカル変数xに格納されている数値データはコンピュータのメモリに格納されていますが実行後は消えてしまうのでした

さて、突然ですが次のプログラムをご覧ください。



いまなら


17時までの30分間に限り


ただいまついている値札よりレジにて全品1500%OFF!!!(*^▽^*)

Super clearanceセール開催中!



それでは


こちらのプログラムをご覧ください。




#include <iostream>


using namespace std;


void newmadefunction(int x)

{


x=x+5;


cout<<x<<"\n";


}


int main(){


int a=5;


a=a+5;


cout << a << "\n";


return 0;


}


ビルド実行結果


10



このプログラムは


aの変数宣言 初期化


int a=5;


のあと


変数aに格納されている数値データ5に


さらに5を足して


変数aに格納されている数値データを10に変更しています。



むずかしかったかな




ソーラー「いや・・・ぜんぜん・・・」


マックス「自作関数は定義してあるが全く使われていないじゃないか」




このプログラムの冒頭では


自作関数の定義


void newmadefunction(int x)

{


x=x+5;


cout<<x<<"\n";


}




このプログラムでは使用されないのに


表記してありました



自作関数さん


出番がくるまでおとなし~くじっとまっているのです。



かわいらしいですね。



てんC「それでは!


自作関数 newmadefunction(int x)さ~ん。


出番ですよ~😊」




今度は、自作関数newmadefunction(int x)に登場してもらいましょう。



自作関数newmadefunction(int x)をmain関数内で実行してみます。



int xには5を代入しますね。



そのプログラムは次のようになります


#include <iostream>


using namespace std;


void newmadefunction(int x)

{


x = x + 5;


cout << x << "\n";


}


int main() {


newmadefunction(5);


return 0;


}



ビルド実行結果


10



となります


このように


newmadefunction(5);と表記しただけで


int xに5を格納したことになります


ここが自作関数の便利なところですね。



最初のプログラムのビルド実行結果


👇


#include <iostream>


using namespace std;


void newmadefunction(int x)

{


x=x+5;


cout<<x<<"\n";


}


int main(){


int a=5;


a=a+5;


cout << a << "\n";


return 0;


}


ビルド実行結果


10


と一致しています


最初のプログラムでは


👇のようにaの値が変化し


int a=5;

a=a+5;

より

a=10


自作関数newmadefunction(int x)を用いたプログラムでは


次のようにxの値が変化しています。



int x=5;

x=x+5;

より

x=10


以上 よかったです。




                //excellent C++言語より//



solarplexuss


「はい・・・これは何の説明???」


ソーラー「みごとな


参考書だね。excellent C++言語


とってもわかりやすい~」


solarplexuss「大変わかりやすいけど???」


てんC「大変分かりやすいみごとな説明ですね。」


マックス「これで


このエピソードは おしまいのようだな


ふはは 楽勝だったな~」



ソーラー「ふふっ ここでのポイントは


newmadefunction(5)のように


int x=5;と


自作関数newmadefunction(int x)に5を代入したところかな?


main関数内で


int main(){


newmadefunction(5);


return 0;


}


のように記述されているけど


newmadefunction(5);の5は


自作関数の引数として定義された


int xに5を代入したものでしたね


int xは自作関数内で定義されたローカル変数なんだ


そして



 自作関数newmadefunction(int x);が実行される間は


つまり


void newmadefunction(int x)


{

x=x+5;

cout << x << "\n";

}


のブロック{}内の命令文


x=x+5;


cout << x << "\n";


が実行されている間は



  🌞メモリに付けられた変数名xは格納している値5とともに🌞



  🌞コンピュータのメモリに記憶されていますが🌞



 自作関数newmadefunction(int x);が実行されたあとは


すなわち

x=x+5;

cout << x << "\n";


が実行された後は


  🌞メモリに付けられた変数名xは格納している値5とともに🌞

          


  🌞コンピュータのメモリから消えてしまいます🌞



ちょっといいかえると


         自作関数newmadefunctionが実行されている


    つまり 自作関数の中身の定義が実行されている間は


         ローカル変数xに格納されている数値データは


        メモリに付けられた変数名xとともに


       コンピュータのメモリに格納されていることになります



solarplexuss「そのあたりは


ローカル変数、 グローバル変数のエピソードでやってきたね」



  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る