Cpp bool型のソースを表示
新しいページはコチラ
移動:
案内
,
検索
<table class="mbox-small" style="border:1px solid #aaa; background-color:#f9f9f9; width:22em;" id="RealTitleBanner"> <tr> <td style="width:1px;"></td> <td class="mbox-text plainlist" style="">本来の表記は「<b><span id="RealTitle" style="font-size:large;">C++ bool型</span></b>」です。この記事に付けられた題名は{{記事名の制約}}から不正確なものとなっています。</td> </tr> </table> ※このページでは[[C PlusPlus|C++]]にのみ存在する機能として、記事タイトルが<nowiki>C++ bool型</nowiki>になっています。<br /> <br /> == '''bool型''' == bool型は真or偽のどちらかを持つための変数です。VisualStudioでは、1バイトの大きさの変数で、true = 1 false = 0 とした1バイトの整数型と考えることができます。bool型が1バイトであることは保証されていません。bool型に0以外の数値を代入演算子で代入した場合に1になるという特徴がある型となります。したがってint型と同様の数値変数として扱うことはできません。bool型変数に対してインクリメント演算子を使うことができますが、デクリメント演算子を使うことができないようになっています。0を保持している、bool型変数に対してインクリメント演算子を使うと1になり偽falseから真trueに変化しますが、デクリメント演算子で戻すことはできません。インクリメント演算子で偽なら真に変え、真なら真のままにするという特殊な操作が可能となりますので、特殊な使い方をするプログラマもいるかもしれません。わかりにくい操作ですので、できれば、bool型変数に対するインクリメントは避けた方が良いと思います。 真や偽、trueやfalseあるいは1や0のどちらをとる値と言われてもピンと来ない人は、ブール代数を学習した方が良いと思います。プログラミングにおいてブール代数の理解は有用です。if文の条件の考え方や、入力のパターンに対する出力の組み合わせを単純化した式の作成ができるようになります。 サンプル <syntaxhighlight lang="cpp" line start="1"> #pragma once #include <iostream> //cpp cout etc 一般入出力関数 int _tmain(int argc, _TCHAR* argv[]) { bool bFlagA; bool bFlagB; bFlagA = true; bFlagB = false; printf("bFlagA(true)->%d bFlagB(false)->%d size(bool)->%d\n",bFlagA,bFlagB,sizeof(bool)); printf("(true)->%d (false)->%d size(bool)->%d\n",true,false,sizeof(bool)); if(bFlagA == -1){ printf("if(bFlagA == -1)->true\n"); } else{ printf("if(bFlagA == -1)->false\n"); } if(bFlagA == 0){ printf("if(bFlagA == 0)->true\n"); } else{ printf("if(bFlagA == 0)->false\n"); } if(bFlagA == 1){ printf("if(bFlagA == 1)->true\n"); } else{ printf("if(bFlagA == 1)->false\n"); } if(bFlagA == 2){ printf("if(bFlagA == 2)->true\n"); } else{ printf("if(bFlagA == 2)->false\n"); } if(bFlagB == -1){ printf("if(bFlagB == -1)->true\n"); } else{ printf("if(bFlagB == -1)->false\n"); } if(bFlagB == 0){ printf("if(bFlagB == 0)->true\n"); } else{ printf("if(bFlagB == 0)->false\n"); } if(bFlagB == 1){ printf("if(bFlagB == 1)->true\n"); } else{ printf("if(bFlagB == 1)->false\n"); } if(bFlagB == 2){ printf("if(bFlagB == 2)->true\n"); } else{ printf("if(bFlagB == 2)->false\n"); } if(-1){ printf("if(-1)->true\n"); } else{ printf("if(-1)->false\n"); } if(0){ printf("if(0)->true\n"); } else{ printf("if(0)->false\n"); } if(1){ printf("if(1)->true\n"); } else{ printf("if(1)->false\n"); } if(2){ printf("if(2)->true\n"); } else{ printf("if(2)->false\n"); } bFlagA++; bFlagB++; printf("bFlagA(true++)->%d bFlagB(false++)->%d size(bool)->%d\n",bFlagA,bFlagB,sizeof(bool)); bFlagA = -1; bFlagB = 2; printf("bFlagA(-1)->%d bFlagB(2)->%d size(bool)->%d\n",bFlagA,bFlagB,sizeof(bool)); bFlagA = 1; bFlagB = 0; printf("bFlagA(1)->%d bFlagB(0)->%d size(bool)->%d\n",bFlagA,bFlagB,sizeof(bool)); if(bFlagA == -1){ printf("if(bFlagA == -1)->true\n"); } else{ printf("if(bFlagA == -1)->false\n"); } if(bFlagA == 0){ printf("if(bFlagA == 0)->true\n"); } else{ printf("if(bFlagA == 0)->false\n"); } if(bFlagA == 1){ printf("if(bFlagA == 1)->true\n"); } else{ printf("if(bFlagA == 1)->false\n"); } if(bFlagA == 2){ printf("if(bFlagA == 2)->true\n"); } else{ printf("if(bFlagA == 2)->false\n"); } if(bFlagB == -1){ printf("if(bFlagB == -1)->true\n"); } else{ printf("if(bFlagB == -1)->false\n"); } if(bFlagB == 0){ printf("if(bFlagB == 0)->true\n"); } else{ printf("if(bFlagB == 0)->false\n"); } if(bFlagB == 1){ printf("if(bFlagB == 1)->true\n"); } else{ printf("if(bFlagB == 1)->false\n"); } if(bFlagB == 2){ printf("if(bFlagB == 2)->true\n"); } else{ printf("if(bFlagB == 2)->false\n"); } return 0; } </syntaxhighlight> 出力 <syntaxhighlight lang="text"> bFlagA(true)->1 bFlagB(false)->0 size(bool)->1 (true)->1 (false)->0 size(bool)->1 if(bFlagA == -1)->false if(bFlagA == 0)->false if(bFlagA == 1)->true if(bFlagA == 2)->false if(bFlagB == -1)->false if(bFlagB == 0)->true if(bFlagB == 1)->false if(bFlagB == 2)->false if(-1)->true if(0)->false if(1)->true if(2)->true bFlagA(true++)->1 bFlagB(false++)->1 size(bool)->1 bFlagA(-1)->1 bFlagB(2)->1 size(bool)->1 bFlagA(1)->1 bFlagB(0)->0 size(bool)->1 if(bFlagA == -1)->false if(bFlagA == 0)->false if(bFlagA == 1)->true if(bFlagA == 2)->false if(bFlagB == -1)->false if(bFlagB == 0)->true if(bFlagB == 1)->false if(bFlagB == 2)->false </syntaxhighlight>
テンプレート:記事名の制約
(
ソースを閲覧
)
Cpp bool型
に戻る。
個人用ツール
ログイン
名前空間
ページ
議論
変種
表示
閲覧
ソースを表示
履歴表示
操作
検索
案内
メインページ
コミュニティ・ポータル
最近の出来事
最近の更新
おまかせ表示
ヘルプ
ツールボックス
リンク元
関連ページの更新状況
特別ページ