Cpp bool型 新しいページはコチラ
提供: yonewiki
(ページの作成:「<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-tex...」) |
(→bool型) |
||
8行: | 8行: | ||
<br /> | <br /> | ||
== '''bool型''' == | == '''bool型''' == | ||
+ | bool型は真or偽のどちらかを持つための変数です。VisualStudioでは、1バイトの大きさの変数で、true = 1 false = 0 とした1バイトの整数型と考えることができます。bool型が1バイトであることは保証されていません。bool型に0以外の数値を代入演算子で代入した場合に1になるという特徴がある型となります。したがってint型と同様の数値変数として扱うことはできません。bool型変数に対してインクリメント演算子を使うことができますが、デクリメント演算子を使うことができないようになっています。0を保持している、bool型変数に対してインクリメント演算子を使うと1になり偽falseから新trueに変化しますが、デクリメント演算子で戻すことはできません。インクリメント演算子で偽なら真に変え、真なら真のままにするという特殊な操作が可能となりますので、特殊な使い方をするプログラマもいるかもしれません。わかりにくい操作ですので、できれば、bool型変数に対するインクリメントは避けた方が良いと思います。 | ||
+ | |||
+ | サンプル | ||
+ | <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> |