EAZY IDECは古いタイプの統合開発環境ですがコンパイラの仕組みを理解するには大変適しています。

☆初期化する前の変数にもともと格納されている値をみつけちゃえ(^^)




 ☆初期化する前の変数にもともと格納されている値をみつけちゃえ(^^)☆




ソーラー「 


さっきのプログラム


#include <stdio.h>


int main(void)

{

int a,b;

a=12;

a=b;


printf("りんごは%d円です。\n",a);

return 0;

} 


において 


プログラムの実行結果(EAZY IDECの場合)は


りんごは1638280円です。


と表示されました。



Visual Studioではプログラムを実行することができず


この結果を見ることはできません。

                  solarplexussより


a=b;


すなわち


変数bを変数aに代入して


a=1638280となり


そのaの値が


命令文 printf("りんごは%d円です。\n",a);により


printf出力表示され


りんごは1638280円です。と表示されたようです。


変数bを変数aに代入して


変数aに格納されている数値が1638280になったのなら


初期化されていない変数bの中身の値は


1638280と予想されます。


が・・・・・


a=b;と


初期化されていない変数bの値を変数aに代入する


という特殊な操作


を行っているので


もしかしたら この


初期化されていない変数bの値を変数aに代入する


a=b;


という操作により


何らかの作用がおこり


もともとの初期化されていない変数bに格納されていた数値が変化して


b=1638280になり


それが


変数aに代入され


a=1638280となったのかもしれません。


だって


初期化されていないのに


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


(つまり

自分でb=10;

とか

決めて代入したわけでもないのに


なぜか変数bに格納されていたデータは)


未知の可能性を


秘めたデータなんですもん。


その初期化されていないのに


変数bに格納されていた未知の数値に


a=b;


と操作を加えると何が起きるかわかりません。


変数bに格納されていた未知の数値に


a=b;


と操作を加えることにより


変数bに格納されていた未知の数値が


1638280


に変化し


aに格納されたのかもしれません



ニーモ 「ソーラー、嬉しそうね。」


ニーモの羽がきらめく。


ソーラー 「い、いや、てへへ・・」


照れるソーラー。


ソーラー 「それにしてもなんだか今日は調子がいいなあ。」


ニーモ 「ほんとね。いいんじゃない?」


ソーラー 「あー、えーっ


なんだったっけ。そうそう、bの値、bの値、


つまり、


int a,b;

a=12;

a=b;


printf("りんごは%d円です。\n",a);


が実行されましたが


a=b;という操作を加えずに


さらに


printf("りんごは%d円です。\n",a);

(間接的にbの格納している値を表示することになります)

のように


変数aをまったく介さずに


直接


初期化されていない変数bに格納されていた値を


もとめてみたいんです。」


ニーモ 「どうやって。どうやって。」


ソーラー


「それは、これ、これ、。」


すばやく プログラムを書き込むソーラー


#include <stdio.h>


int main(void)

{

int b;

printf("りんごは%d円です。\n",b);

return 0;

}  


ニーモ 「あーーー。」


ソーラー 「みてください、この機能美、


簡潔さ、わたしのプログラムちゃん。


どうです。どうです。どうです。」


ニーモ 「ああ、もう、変数aを介せず


そのまんま


int b;

printf("りんごは%d円です。\n",b);


初期化されていない変数bに


どのような数値が格納されているかを


printf文を使ってもとめるのねーーー。」


(初期化されていない変数bに


どのような数値が格納されているかをコマンドプロンプト画面に表示しようとしています)



ソーラー 「これなら、


初期化されていない変数bの値に格納されている数値を


直接もとめることができます。」


ニーモ 「さあ、どうなるのかしら?」














  

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

作者を応援しよう!

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

応援したユーザー

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

新規登録で充実の読書を

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

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

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