<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>https://twiki.yo-net.jp/index.php?action=history&amp;feed=atom&amp;title=Cpp_bool%E5%9E%8B</id>
	<title>Cpp bool型 - 版の履歴</title>
	<link rel="self" type="application/atom+xml" href="https://twiki.yo-net.jp/index.php?action=history&amp;feed=atom&amp;title=Cpp_bool%E5%9E%8B"/>
	<link rel="alternate" type="text/html" href="https://twiki.yo-net.jp/index.php?title=Cpp_bool%E5%9E%8B&amp;action=history"/>
	<updated>2026-04-05T16:51:27Z</updated>
	<subtitle>このウィキのこのページに関する変更履歴</subtitle>
	<generator>MediaWiki 1.38.2</generator>
	<entry>
		<id>https://twiki.yo-net.jp/index.php?title=Cpp_bool%E5%9E%8B&amp;diff=87&amp;oldid=prev</id>
		<title>Yo-net: ページの作成:「C++に戻る   &lt;table class=&quot;mbox-small&quot; style=&quot;border:1px solid #aaa; background-color:#f9f9f9; width:22em;&quot; id=&quot;RealTitleBanner&quot;&gt; &lt;tr&gt; &lt;td style=&quot;width:1px;&quot;&gt;&lt;/td&gt; &lt;td class=&quot;mbox-text plainlist&quot; style=&quot;&quot;&gt;本来の表記は「&lt;b&gt;&lt;span id=&quot;RealTitle&quot; style=&quot;font-size:large;&quot;&gt;C++(Cpp) bool型&lt;/span&gt;&lt;/b&gt;」です。この記事に付けられた題名は{{記事名の制約}}から不正確なものとなっています。&lt;/td&gt; &lt;/tr&gt;…」</title>
		<link rel="alternate" type="text/html" href="https://twiki.yo-net.jp/index.php?title=Cpp_bool%E5%9E%8B&amp;diff=87&amp;oldid=prev"/>
		<updated>2022-09-26T01:57:48Z</updated>

		<summary type="html">&lt;p&gt;ページの作成:「&lt;a href=&quot;/C_PlusPlus#C++からの技術&quot; title=&quot;C PlusPlus&quot;&gt;C++&lt;/a&gt;に戻る   &amp;lt;table class=&amp;quot;mbox-small&amp;quot; style=&amp;quot;border:1px solid #aaa; background-color:#f9f9f9; width:22em;&amp;quot; id=&amp;quot;RealTitleBanner&amp;quot;&amp;gt; &amp;lt;tr&amp;gt; &amp;lt;td style=&amp;quot;width:1px;&amp;quot;&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;td class=&amp;quot;mbox-text plainlist&amp;quot; style=&amp;quot;&amp;quot;&amp;gt;本来の表記は「&amp;lt;b&amp;gt;&amp;lt;span id=&amp;quot;RealTitle&amp;quot; style=&amp;quot;font-size:large;&amp;quot;&amp;gt;C++(Cpp) bool型&amp;lt;/span&amp;gt;&amp;lt;/b&amp;gt;」です。この記事に付けられた題名は{{記事名の制約}}から不正確なものとなっています。&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;…」&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[C PlusPlus#C++からの技術|C++]]に戻る&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;mbox-small&amp;quot; style=&amp;quot;border:1px solid #aaa; background-color:#f9f9f9; width:22em;&amp;quot; id=&amp;quot;RealTitleBanner&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;width:1px;&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;mbox-text plainlist&amp;quot; style=&amp;quot;&amp;quot;&amp;gt;本来の表記は「&amp;lt;b&amp;gt;&amp;lt;span id=&amp;quot;RealTitle&amp;quot; style=&amp;quot;font-size:large;&amp;quot;&amp;gt;C++(Cpp) bool型&amp;lt;/span&amp;gt;&amp;lt;/b&amp;gt;」です。この記事に付けられた題名は{{記事名の制約}}から不正確なものとなっています。&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
※このページでは[[C PlusPlus|C++]]にのみ存在する機能として、記事タイトルが&amp;lt;nowiki&amp;gt;C++ bool型&amp;lt;/nowiki&amp;gt;になっています。&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
== '''bool型''' ==&lt;br /&gt;
&lt;br /&gt;
bool型は真or偽のどちらかを持つための変数です。VisualStudioでは、1バイトの大きさの変数で、true = 1 false = 0 とした1バイトの整数型と考えることができます。bool型が1バイトであることは保証されていません。bool型に0以外の数値を代入演算子で代入した場合に1になるという特徴がある型となります。したがってint型と同様の数値変数として扱うことはできません。bool型変数に対してインクリメント演算子を使うことができますが、デクリメント演算子を使うことができないようになっています。0を保持している、bool型変数に対してインクリメント演算子を使うと1になり偽falseから真trueに変化しますが、デクリメント演算子で戻すことはできません。インクリメント演算子で偽なら真に変え、真なら真のままにするという特殊な操作が可能となりますので、特殊な使い方をするプログラマもいるかもしれません。わかりにくい操作ですので、できれば、bool型変数に対するインクリメントは避けた方が良いと思います。&lt;br /&gt;
&lt;br /&gt;
真や偽、trueやfalseあるいは1や0のどちらをとる値と言われてもピンと来ない人は、ブール代数を学習した方が良いと思います。プログラミングにおいてブール代数の理解は有用です。if文の条件の考え方や、入力のパターンに対する出力の組み合わせを単純化した式の作成ができるようになります。&lt;br /&gt;
&lt;br /&gt;
サンプル&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot; line start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
#pragma once&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;    //cpp cout etc 一般入出力関数&lt;br /&gt;
&lt;br /&gt;
int _tmain(int argc, _TCHAR* argv[])&lt;br /&gt;
{&lt;br /&gt;
  bool bFlagA;&lt;br /&gt;
  bool bFlagB;&lt;br /&gt;
  bFlagA = true;&lt;br /&gt;
  bFlagB = false;&lt;br /&gt;
&lt;br /&gt;
  printf(&amp;quot;bFlagA(true)-&amp;gt;%d bFlagB(false)-&amp;gt;%d size(bool)-&amp;gt;%d\n&amp;quot;,bFlagA,bFlagB,sizeof(bool));&lt;br /&gt;
  printf(&amp;quot;(true)-&amp;gt;%d (false)-&amp;gt;%d size(bool)-&amp;gt;%d\n&amp;quot;,true,false,sizeof(bool));&lt;br /&gt;
&lt;br /&gt;
  if(bFlagA == -1){&lt;br /&gt;
    printf(&amp;quot;if(bFlagA == -1)-&amp;gt;true\n&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  else{&lt;br /&gt;
    printf(&amp;quot;if(bFlagA == -1)-&amp;gt;false\n&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  if(bFlagA == 0){&lt;br /&gt;
    printf(&amp;quot;if(bFlagA == 0)-&amp;gt;true\n&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  else{&lt;br /&gt;
    printf(&amp;quot;if(bFlagA == 0)-&amp;gt;false\n&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  if(bFlagA == 1){&lt;br /&gt;
    printf(&amp;quot;if(bFlagA == 1)-&amp;gt;true\n&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  else{&lt;br /&gt;
    printf(&amp;quot;if(bFlagA == 1)-&amp;gt;false\n&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  if(bFlagA == 2){&lt;br /&gt;
    printf(&amp;quot;if(bFlagA == 2)-&amp;gt;true\n&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  else{&lt;br /&gt;
    printf(&amp;quot;if(bFlagA == 2)-&amp;gt;false\n&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  if(bFlagB == -1){&lt;br /&gt;
    printf(&amp;quot;if(bFlagB == -1)-&amp;gt;true\n&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  else{&lt;br /&gt;
    printf(&amp;quot;if(bFlagB == -1)-&amp;gt;false\n&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  if(bFlagB == 0){&lt;br /&gt;
    printf(&amp;quot;if(bFlagB == 0)-&amp;gt;true\n&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  else{&lt;br /&gt;
    printf(&amp;quot;if(bFlagB == 0)-&amp;gt;false\n&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  if(bFlagB == 1){&lt;br /&gt;
    printf(&amp;quot;if(bFlagB == 1)-&amp;gt;true\n&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  else{&lt;br /&gt;
    printf(&amp;quot;if(bFlagB == 1)-&amp;gt;false\n&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  if(bFlagB == 2){&lt;br /&gt;
    printf(&amp;quot;if(bFlagB == 2)-&amp;gt;true\n&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  else{&lt;br /&gt;
    printf(&amp;quot;if(bFlagB == 2)-&amp;gt;false\n&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  if(-1){&lt;br /&gt;
    printf(&amp;quot;if(-1)-&amp;gt;true\n&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  else{&lt;br /&gt;
    printf(&amp;quot;if(-1)-&amp;gt;false\n&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  if(0){&lt;br /&gt;
    printf(&amp;quot;if(0)-&amp;gt;true\n&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  else{&lt;br /&gt;
    printf(&amp;quot;if(0)-&amp;gt;false\n&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  if(1){&lt;br /&gt;
    printf(&amp;quot;if(1)-&amp;gt;true\n&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  else{&lt;br /&gt;
    printf(&amp;quot;if(1)-&amp;gt;false\n&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  if(2){&lt;br /&gt;
    printf(&amp;quot;if(2)-&amp;gt;true\n&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  else{&lt;br /&gt;
    printf(&amp;quot;if(2)-&amp;gt;false\n&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  bFlagA++;&lt;br /&gt;
  bFlagB++;&lt;br /&gt;
&lt;br /&gt;
  printf(&amp;quot;bFlagA(true++)-&amp;gt;%d bFlagB(false++)-&amp;gt;%d size(bool)-&amp;gt;%d\n&amp;quot;,bFlagA,bFlagB,sizeof(bool));&lt;br /&gt;
&lt;br /&gt;
  bFlagA = -1;&lt;br /&gt;
  bFlagB = 2;&lt;br /&gt;
&lt;br /&gt;
  printf(&amp;quot;bFlagA(-1)-&amp;gt;%d bFlagB(2)-&amp;gt;%d size(bool)-&amp;gt;%d\n&amp;quot;,bFlagA,bFlagB,sizeof(bool));&lt;br /&gt;
&lt;br /&gt;
  bFlagA = 1;&lt;br /&gt;
  bFlagB = 0;&lt;br /&gt;
&lt;br /&gt;
  printf(&amp;quot;bFlagA(1)-&amp;gt;%d bFlagB(0)-&amp;gt;%d size(bool)-&amp;gt;%d\n&amp;quot;,bFlagA,bFlagB,sizeof(bool));&lt;br /&gt;
&lt;br /&gt;
  if(bFlagA == -1){&lt;br /&gt;
    printf(&amp;quot;if(bFlagA == -1)-&amp;gt;true\n&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  else{&lt;br /&gt;
    printf(&amp;quot;if(bFlagA == -1)-&amp;gt;false\n&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  if(bFlagA == 0){&lt;br /&gt;
    printf(&amp;quot;if(bFlagA == 0)-&amp;gt;true\n&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  else{&lt;br /&gt;
    printf(&amp;quot;if(bFlagA == 0)-&amp;gt;false\n&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  if(bFlagA == 1){&lt;br /&gt;
    printf(&amp;quot;if(bFlagA == 1)-&amp;gt;true\n&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  else{&lt;br /&gt;
    printf(&amp;quot;if(bFlagA == 1)-&amp;gt;false\n&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  if(bFlagA == 2){&lt;br /&gt;
    printf(&amp;quot;if(bFlagA == 2)-&amp;gt;true\n&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  else{&lt;br /&gt;
    printf(&amp;quot;if(bFlagA == 2)-&amp;gt;false\n&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  if(bFlagB == -1){&lt;br /&gt;
    printf(&amp;quot;if(bFlagB == -1)-&amp;gt;true\n&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  else{&lt;br /&gt;
    printf(&amp;quot;if(bFlagB == -1)-&amp;gt;false\n&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  if(bFlagB == 0){&lt;br /&gt;
    printf(&amp;quot;if(bFlagB == 0)-&amp;gt;true\n&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  else{&lt;br /&gt;
    printf(&amp;quot;if(bFlagB == 0)-&amp;gt;false\n&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  if(bFlagB == 1){&lt;br /&gt;
    printf(&amp;quot;if(bFlagB == 1)-&amp;gt;true\n&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  else{&lt;br /&gt;
    printf(&amp;quot;if(bFlagB == 1)-&amp;gt;false\n&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  if(bFlagB == 2){&lt;br /&gt;
    printf(&amp;quot;if(bFlagB == 2)-&amp;gt;true\n&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  else{&lt;br /&gt;
    printf(&amp;quot;if(bFlagB == 2)-&amp;gt;false\n&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
出力&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
bFlagA(true)-&amp;gt;1 bFlagB(false)-&amp;gt;0 size(bool)-&amp;gt;1&lt;br /&gt;
(true)-&amp;gt;1 (false)-&amp;gt;0 size(bool)-&amp;gt;1&lt;br /&gt;
if(bFlagA == -1)-&amp;gt;false&lt;br /&gt;
if(bFlagA == 0)-&amp;gt;false&lt;br /&gt;
if(bFlagA == 1)-&amp;gt;true&lt;br /&gt;
if(bFlagA == 2)-&amp;gt;false&lt;br /&gt;
if(bFlagB == -1)-&amp;gt;false&lt;br /&gt;
if(bFlagB == 0)-&amp;gt;true&lt;br /&gt;
if(bFlagB == 1)-&amp;gt;false&lt;br /&gt;
if(bFlagB == 2)-&amp;gt;false&lt;br /&gt;
if(-1)-&amp;gt;true&lt;br /&gt;
if(0)-&amp;gt;false&lt;br /&gt;
if(1)-&amp;gt;true&lt;br /&gt;
if(2)-&amp;gt;true&lt;br /&gt;
bFlagA(true++)-&amp;gt;1 bFlagB(false++)-&amp;gt;1 size(bool)-&amp;gt;1&lt;br /&gt;
bFlagA(-1)-&amp;gt;1 bFlagB(2)-&amp;gt;1 size(bool)-&amp;gt;1&lt;br /&gt;
bFlagA(1)-&amp;gt;1 bFlagB(0)-&amp;gt;0 size(bool)-&amp;gt;1&lt;br /&gt;
if(bFlagA == -1)-&amp;gt;false&lt;br /&gt;
if(bFlagA == 0)-&amp;gt;false&lt;br /&gt;
if(bFlagA == 1)-&amp;gt;true&lt;br /&gt;
if(bFlagA == 2)-&amp;gt;false&lt;br /&gt;
if(bFlagB == -1)-&amp;gt;false&lt;br /&gt;
if(bFlagB == 0)-&amp;gt;true&lt;br /&gt;
if(bFlagB == 1)-&amp;gt;false&lt;br /&gt;
if(bFlagB == 2)-&amp;gt;false&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[C PlusPlus#C++からの技術|C++]]に戻る&lt;/div&gt;</summary>
		<author><name>Yo-net</name></author>
	</entry>
</feed>