変数宣言 int a; を行ったら 何も数値を変数aに代入しなくても 最初から変数aに数値が格納されています

ソーラー「


#include <iostream>


using namespace std;


int main() {


int a;

a=5;

cout <<a<<"\n";


return 0;

}



ビルド実行結果


5


どうやら変数の仕組みについてわかってきたかな?」



マックス


「int型の変数aは


-2147483648から2147483647までの数値データの1つを格納できるの


はわかった


じゃ


今度は


何も変数aにデータを格納しなかったら


cout <<a<<"\n";

実行結果は


どう表示されるんだ?」


ソーラー「

int a;

a=5;


a=5;

を記述しないということかな」


マックス「そう、それそれ」


ソーラー「それは・・・


よし


じゃあ


a=5;

を記述しないで

プログラムを実行してみよっか😊」


かき かきっと


書き換え完了


#include <iostream>


using namespace std;


int main() {


int a;


cout <<a<<"\n";


return 0;

}


ソーラー「すっきりしたね」


マックス「プログラムを実行すると


何が表示されるのか 楽しみじゃないか」


ソーラー「そうですね


どうなることやら・・


それでは・・


このプログラムを


実行ぉ」


ビルド実行結果


-1530494976


エラー C4700 初期化されていないローカル変数 'a' が使用されますc:\users\solarplexuss\source\repos\project7\project7\source.cpp


マックス「


エラー C4700 初期化されていないローカル変数 'a' が使用されます


が表示されたか


まあ そのとおりなんだよ


Visual Studioちゃん


変数aに1000000000000000を代入したときと


変数aに何も代入しないときで同じ


ビルド実行結果がでたな


これはなんで?」


ソーラー「それはね


変数aに


int a;

a=1000000000000000;


1000000000000000を代入したときでは


1000000000000000は


int型の変数aに入り切らなかったので


int型の変数には何もデータが格納されなかった


同様に

int a;

a=5;

a=5;


を省略した場合も


変数aに何も代入しなかったので


int型の変数aには何もデータが格納されなかった


とかんがえられるよね」


マックス「そうか


int型の変数aには何もデータが格納されなかった


それなのに


-1530494976



ビルド実行結果に表示されているってことになるのか」


ソーラー「そうかんがえると


確かに不思議ですね😊


実は


変数aに何も数値を代入しないとき


cout <<a<<"\n";


によって


-1530494976



表示されたということは


int型の変数aには


最初から


-1530494976



格納されていたということを表しているんです」


マックス「


変数宣言


int a;


を行ったら


何も数値を変数aに代入しなくても


最初から変数aに数値が格納されてるってことか・・・?」


ソーラー「そう そうなんです」




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

作者を応援しよう!

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

応援したユーザー

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

新規登録で充実の読書を

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

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

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