マルチスレッド版数独自動生成ソフトC++コードを題材とする超初心者のためのVisual Studio C++講義
第2章 変数って何?
第5話 コードの変更とその理由
#include <iostream>//インクルードファイルの読み込み
#include<conio.h> //while(!_kbhit());を使うためのお呪い
using namespace std;//coutを使うときに必要なお呪い
void 挨拶社員();//ぼくは挨拶を行う係です。
void 整数を扱う社員();//ぼくは整数型変数を定義してその変数に整数値を代入する係です。
int main() {//私は社長だ。
挨拶社員();//ぼくは挨拶を行う係です。
整数を扱う社員();//ぼくは整数型変数を定義してその変数に整数値を代入する係です。
while (!_kbhit());//待機させるための命令
return 0;//int main() を終わるためのお呪い
}
void 挨拶社員() {//ぼくは「こんにちは」と挨拶をする係です。
cout << "こんにちは" << endl;//コンソール画面への描写
}
void 整数を扱う社員() {//ぼくは整数を扱う係です。
int 整数a;//整数aは整数型の変数であることを宣言します=整数aを整数型の変数であると定義(約束)します。
整数a = 10;//整数aという箱に10を入れます。
cout << 整数a << endl;//コンソール画面に描写
}
(2026年1月20日のコードにミスがありました。
ご迷惑をおかけしたことを深くお詫び申し上げます。
申し訳ありませんが、再度コピペをお願いします。)
変更は「整数1」→「整数a」です。
変更理由は
整数1 = 10;//整数aという箱に10を入れます。
の「整数1 = 10;」の整数1と10の1が同じなので誤解を招くと判断したからです。
さらに、「cout << 整数a << endl;」 << の前後で半角スペースを入れました。
ですが、コピペした際に気が付いた人もいるかと思いますが、
実は「cout<<整数a<<endl;」 としてもプログラミング専用編集ソフトエディタは自動的に半角スペースを入れてくれます。
ですから「cout<<整数a<<endl;」でも問題はなかったのですが、見え方を同じにするために半角スペースを入れました。
さて、
整数a = 10;//整数aという箱に10を入れます。
cout << 整数a <<endl;
の2行について詳しく解説していきます。
まず「整数a = 10;」から。
これは数学の等式とは違います。
そして、左辺と右辺では意味が違います。
左辺は整数aは整数を入れる箱です。
それに対して右辺は整数値10そのものです。
つまり、「整数a = 10;」は整数を入れる箱である整数aに整数値10を入れる操作を表しています。
皆さんは「整数a = 10;」を見たら頭の中で「整数a ← 10;」と変換しましょう。
実際に変更してしまうとビルドエラーをします。
ですから、 あくまで頭の中でです。
本当はプログラム言語草創期に半角の←(半角は作れませんからこれは全角です)を作り「整数a ← 10;」
とすればよかったのですが、
すでに300を超えるプログラム言語が開発されており、
変更は不可能です。
整数a = 10;//整数aという箱に10を入れます。
cout << 整数a <<endl;
さらに、同じ「整数a」ですが、1行目と2行目は意味が異なります。
1行目はすでに述べたように、整数を入れる箱ですが、
2行目の方はその箱に入っている中身である「10」です。
中身を見ることを参照と言います。
参照される場合は「cout << 整数a <<endl;」は「cout << 10 <<endl;」と同じです。
あっれ、
cout << "こんにちは" << endl;//コンソール画面への表出
ではダブルコーテーション""で囲まれていたぞ、と思った方はセンスのいい方です。
「cout << "10" <<endl;」としても実行結果は一見変わりありませんが、
実は「cout << 10 <<endl;」の場合は数値の10であるのに対して、
「cout << "10" <<endl;」の方は文字としての10です。
えっ!何が違うのですね。
プログラミングの世界では文字としての10と数値としての10を区別して扱います。
大事なことですので覚えておいてください。