論理値0と1のみを格納する型boolについて考察してみよう

ソーラー「先ほどは


trueやfalseが


true=1

false=0

の値をもっていることがわかったね。




#include <iostream>


using namespace std;


int main() {


cout << true<<"\n";

cout << false<<"\n";


int a;


a = true;


cout << a << "\n";


return 0;


}


ビルド実行結果

1

0

1


マックス「int型の変数aに


trueやfalseが代入できるとは思わなかったな」


ソーラー「まあ


trueやfalseが


true=1

false=0

の値をもっているのであれば


int型の変数aに格納できるのも普通のことなのかな。


ところで今日は新しいデータを格納する型boolに


登場してもらいましょう。」


マックス「bool型?


聞いたことのないデータを格納する型だな」


ソーラー「


では


てんCさん お願いします。」


てんC「データを格納する型boolですね。


データを格納する型boolをもちいて


bool型の変数を作製することができます。


bool型の変数aは


bool a;



aのbool型の変数宣言をおこなうことにより


作製することができます。


このbool型の変数宣言によって作製された変数aには


面白い特徴があります。


次のプログラムでは


bool型の変数aに


1

0

10000

-1

1.0234

'c'(文字データc)


を代入してみます。



#include <iostream>


using namespace std;


int main() {


bool a;

a = 1;

cout << a << "\n";


a = 0;

cout << a << "\n";


a = 10000;

cout << a << "\n";


a = -1;

cout << a << "\n";


a = 1.0234;

cout << a << "\n";


a = 'c';

cout << a << "\n";


return 0;


}


ビルド実行結果


1

0

1

1

1

1


エディタ画面には

警告 C4305 '=': 'int' から 'bool' へ切り詰めます。

警告 C4305 '=': 'int' から 'bool' へ切り詰めます。

警告 C4305 '=': 'double' から 'bool' へ切り詰めます。

警告 C4305 '=': 'char' から 'bool' へ切り詰めます。


と表示されています。


このコンパイル結果を見ても分かるように


bool型の変数aに0を代入すると

0が

bool型の変数aに0以外の整数値、実数値、文字データなどを

代入すると

1が

bool型の変数aに格納されます。」


マックス「bool型の変数は0と1のみを格納するのか」



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

作者を応援しよう!

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

応援したユーザー

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

新規登録で充実の読書を

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

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

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