【发布时间】:2013-12-19 00:51:29
【问题描述】:
我在玩 Bool 类型(布尔变量)并输入了这个:
#include <iostream>
int main(void)
{
using std::cout;
using std::cin;
using std::endl;
bool $ok = false & true;
if($ok == true)
{
cout << "The value is True." << endl;
}
else if($ok == false)
{
cout << "The value is false." << endl;
}
cin.get();
cin.get();
return 0;
}
我知道使用按位运算符 & 和逻辑运算符 && 之间的区别,但我看不出这如何产生假 (0) 值。我知道如果我交换按位运算符并使用+ 表达式0+1 将导致它评估为true。有人能解释一下为什么吗:
bool $ok = false & true;
评估为假?
【问题讨论】:
-
你为什么认为它是真的?
-
我可能会离开这里,但不会使用位运算符 '&' 与假和真预定义文字 (0 ,1) 一起产生真值吗?我不知道如何/为什么会或不会,这就是我寻求帮助的原因。
-
你知道如何计算位与吗?如果没有,here's a reference。简短的回答,不。
-
谢谢,我不是很了解,只知道'&&'和'&'的区别而已。我是自学成才,可以使用尽可能多的资源来学习。
-
顺便说一句,如果您希望代码可移植,请不要在 C++ 中的变量名中使用
$。 stackoverflow.com/questions/7926394/in-variable-name
标签: c++ boolean visual-c++