[C言語]bool_test

スポンサーリンク

C言語を勉強していたときのメモ

=====

/* bool,true,および false を使った論理テストの例 */
#include 
using std::cout;
using std::endl;
bool func() {   // bool の型を返す関数
   return NULL; // NULL は bool 型の false に変換される
// return false;    // この文は,上記と論理的に等しい
   }
int main() {
   bool val = false;    // bool 型変数
   int i = 1;         // i は bool 型の true または false のどちらでもない
   int *iptr = 0;   // ヌルポインタ
   float j = 1.01;   // i は bool 型の true または false のどちらでもない
   // 整数のテスト
   if (i == true)  cout << "True: 値は 1 です。" << endl;
   if (i == false) cout << "False: 値は 0 です。" << endl;
   // ポインタのテスト
   if (bool(iptr) == false) cout << "不正なポインタです。" << endl;
   // j の実際の値をテストするため,j を bool 型にキャストする
   if (bool(j) == true) cout << "j を bool 型にキャストすると true です。" << endl;
   // 論理関数の戻り値をテストする
   val = func();
   if (val == false)
      cout << "func() は false を返しました";
   if (val == true)
      cout << "func() は true を返しました";
   return false;  // false は 0 に変換される
}

プログラムの出力:

True: 値は 1です。
不正なポインタです。
j を bool 型にキャストすると true です。
func() は false を返しました。

コメント

タイトルとURLをコピーしました