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 を返しました。
コメント