すなわち main関数内で定義された変数aの格納している値を自作関数を経由して変更することができます

🌞🌞変数aに格納されている数値と変数bに格納されている数値の交換にチャレンジしてみよう

ソーラー「はあ はあっ


僕はまだまだやっちゃうよ~」



#include <stdio.h>


int main(void){


int a=1;

int b=2;


printf("変数aに格納されている値は%dです\n",a);

printf("変数bに格納されている値は%dです\n",b);


return 0;


}


コンパイル結果

変数aに格納されている数値は1です

変数bに格納されている数値は2です


ソーラー「はは どうかな みんな?


この高度なプログゥラミングゥゥゥ~~~


この芸術性!


しびれたかな😊」


アレサ「はい しびれましたですの💖


高度なプログラミングです」


ソーラー「われながらほれぼれするほどの出来栄えだね。


今日はこの高度なプログラミングに手を加えてみようと思うんだ」


アレサ「ま、まさか


この高級感溢れる洗練されたプログラミングに


手を加えようとされているのですか?


それは


あまりにも革新的な・・・」


ソーラー「ふふ その革新的なプログラミングを


今 まさに行おうと思っているんだ。


このプログラムでは


変数aには1が

変数bには2が


格納されているね。


だから


printf("変数aに格納されている値は%dです\n",a);

printf("変数bに格納されている値は%dです\n",b);


が実行されると


コンパイル結果

変数aに格納されている数値は1です

変数bに格納されている数値は2です


になるんだね。



これを



printf("変数aに格納されている値は%dです\n",a);

printf("変数bに格納されている値は%dです\n",b);


が実行されると


コンパイル結果

変数aに格納されている数値は2です

変数bに格納されている数値は1です


になるようプログラムを変更しようというわけなんだ


もちろん


int a=1;

int b=2;


をおこなった💖後💖💖でね。



int a=2;

int b=1;


を実行すれば


printf("変数aに格納されている値は%dです\n",a);

printf("変数bに格納されている値は%dです\n",b);


が実行されると


コンパイル結果

変数aに格納されている数値は2です

変数bに格納されている数値は1です



となるのは


ふつうのことだからね。


どうしようかな~」



アレサ「つまり


int a=1;

int b=2;


が行われると


変数aには1が

変数bには2が


格納されているのですが


なんらかの操作を加えて


変数aには2が

変数bには1が


格納されるようにしたいというわけなのですね。


そんなことを考えておられるとは・・・」



ソーラー「そうさ


そのプログラムはこうだ」


アレサ「!?」


#include <stdio.h>


int main(void){


int a=1;

int b=2;


printf("変数aに格納されている値は%dです\n",a);

printf("変数bに格納されている値は%dです\n",b);



int c;

int d;


c=a;

d=b;


a=d;

b=c;



printf("変数aに格納されている値は%dです\n",a);

printf("変数bに格納されている値は%dです\n",b);


return 0;


}


コンパイル結果

変数aに格納されている数値は1です

変数bに格納されている数値は2です

変数aに格納されている数値は2です

変数bに格納されている数値は1です


アレサ「こ、これは・・・」


ソーラー「はは どうだい アレサ


このプログラムでは


c=a;

d=b;


を実行することにより


変数cに変数aが格納している数値1を


変数dに変数bが格納している数値2を


渡しているんだ


だから


c=1;

d=2;


が行われているのに等しいんだ。


変数cが格納している数値は1で


変数dが格納している数値は2


なので


a=d;

b=c;


を実行すれば


a=2;

b=1;


が実行されることになり


変数aが格納している数値は2で


変数bが格納している数値は1


となるんだ。


つまり


変数aが格納している数値と


変数bが格納している数値が


入れ替わったことになるんだ 」


アレサ「簡単に


変数aが格納している数値と


変数bが格納している数値が


いれかわっています・・・」


ソーラー「さらに次のようなプログラムでも


変数aが格納している数値と


変数bが格納している数値を入れ替えることができるんだよ。


#include <stdio.h>


int main(void){


int a=1;

int b=2;


printf("変数aに格納されている値は%dです\n",a);

printf("変数bに格納されている値は%dです\n",b);


int c;


c=a;

a=b;

b=c;



printf("変数aに格納されている値は%dです\n",a);

printf("変数bに格納されている値は%dです\n",b);


return 0;


}


コンパイル結果

変数aに格納されている数値は1です

変数bに格納されている数値は2です

変数aに格納されている数値は2です

変数bに格納されている数値は1です


ソーラー「どうかな(´▽`*)」


アレサ「(*´▽`*)すばらしいですの」



ソーラー「このプログラムでは


int a=1;

int b=2;

が行われているので


最初に


変数aに格納されている数値は1

で

変数bに格納されている数値は2


だね。


次は


int c;


を実行して


c=a;


を実行することにより


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


変数cに渡しているんだ。


その次に


a=b;


を行うと


変数bが格納している数値は2なので


変数aに格納されている数値は1から2になります。


そして


b=c;


が実行されると


変数cが格納している数値は1なので


変数bに格納されている数値は2から1になります。


つまり

変数aに格納されている数値は2

変数bに格納されている数値は1

変数cに格納されている数値は1


となって


変数aに格納されている数値と

変数bに格納されている数値が


いれかわるんだ(^_-)-☆」




























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

作者を応援しよう!

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

応援したユーザー

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