🌞自作関数15 自作関数void f(int x)のint xにmain関数で定義された変数aを代入してf(a);を実行しても変数aはmain関数のローカル変数のままです。



ソーラー 「ねえ、アレサ 次のプログラムをみてみよう


#include <stdio.h>

// 👇このint x

void f(int x){

printf("%dをとりこみました。\n",x);

}


int main(void){

f(1);

f(1);

f(1);

return 0;

}


プログラムの実行結果


1をとりこみました。

1をとりこみました。

1をとりこみました。


この自作関数f内のint xはどの関数の


ローカル変数になるのかな?


自作関数fのローカル変数になるのかな?

main関数のローカル変数になるのかな?


main関数内で


f(1);と数値1を代入してるよね


それともint xはグローバル変数なのかな?



👇このint xは・・・


#include <stdio.h>

👇このint x

void f(int x){

printf("%dをとりこみました。\n",x);

}


int main(void){

f(1);

f(1);

f(1);

return 0;

}


プログラムの実行結果


1をとりこみました。

1をとりこみました。

1をとりこみました。


アレサ 「この場合のint xは


main関数内でxの変数宣言、定義されておらず


自作関数void f(int x)の()内でxの変数宣言、定義がされていますね


この場合


xは


自作関数fのローカル変数になります


main関数内で


f(1);


が実行されるときは


int xに1が代入された状態で


printf("%dをとりこみました。\n",x);


が実行されることになります


f(1);



int x=1;


のように


自作関数のローカル変数を


初期化していることになります」







ソーラー「では 次のプログラムをみてみようっかな?」



#include <stdio.h>


void f(int x){

printf("%dをとりこみました。\n",x);

}


int main(void){

int a=10;

f(a);

f(a);

f(a);


return 0;

}


プログラムの実行結果


10をとりこみました。

10をとりこみました。

10をとりこみました。



ソーラー「

f(a);

f(a);

f(a);

ってなってるよね。


この場合


変数a、変数xはどの関数のローカル変数になるのかな?」



アレサ「ソーラーさん、こうやってお話してると楽しいです。😊😊😊


この場合


変数aはmain関数内で変数宣言されているので


main関数のローカル変数です


変数xは自作関数fの定義の

👇

void f(int x){

printf("%dをとりこみました。\n",x);

}


void f()内で変数宣言されているので


自作関数fのローカル変数です


f(a);と記述されても


変数aは自作関数fのローカル変数でなく


main関数のローカル変数のままです


f(a);では


int xに


変数aを代入して数値10を


変数xにわたしているのですが


main関数のローカル変数aが自作関数fのローカル変数となったわけではありません


(int x=a; が実行されて変数ⅹに変数aの格納している値が代入されているだけです)



どうかな、どうかな ソーラーさん(^^)」


ソーラー 「ローカル変数同士は


お互い 別の関数の変数だけど


このように


main関数で変数宣言された変数aを


自作関数fで変数宣言された変数xに代入して


変数aが格納している数値データをわたすことができるんだね」

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

作者を応援しよう!

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

応援したユーザー

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

新規登録で充実の読書を

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

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

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