すなわち 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=1;

int b=2;


をおこなった💖💖💖で


例えば


a=2;

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が格納している数値データが


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



solarplexuss「


普通に


a=2;

b=1;


を実行すればいいんじゃないかという気が・・・」




アレサ「簡単に


変数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で共有
  • はてなブックマークでブックマーク

作者を応援しよう!

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

応援したユーザー

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

新規登録で充実の読書を

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

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

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