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>

2014年11月5日 (水) 00:00時点における版



個人用ツール
名前空間

変種
操作
案内
ツールボックス