主题:一个菜鸟的问题,希望高手来回答下哈!小弟感激不尽
xiaojin0898
[专家分:30] 发布于 2006-07-24 11:34:00
小弟刚学C不久还请大家多多见谅哈....
在一次上课中,老师说:
关系运算符的结果必须看做整数1和整数0,不能视为"布尔量",在C语言中,如果运算结果取得非0值,则为真,取得0则为假,而关系表达式如为真,则其结果等于1,为假时,则结果为0.关系运算符都是取2个运算分量,不可取多分量的式.
如:2<X<6是不合法的关系表达式.
请问高手门,这布尔量是什么意思..为什么结果必须要看做整数1和整数0呢???
小弟弟在这不是很明白,理解不是很通..还请大虾帮个忙解答下哈...
小弟感觉不尽
回复列表 (共3个回复)
沙发
liangbch [专家分:1270] 发布于 2006-07-24 12:24:00
应该明白这些概念:布尔运算,布尔类型,布尔值
布尔运算也较逻辑运算,和整数运算不同,典型的整数运算有加,减,乘,除,布尔运算则包括与、或,非。
整数类型的变量可以取无穷个值,但布尔类型的变量只能取2 个值,true和false。在c++中,有专门的变量类型bool,和布尔值(true和false),在c语言,一般以int表示布尔类型,非零视为true,0视为false。整数不应和布尔类型的变量比较,如b是表示布尔值的整数,下列是错误的写法。
"if (b==1)"
“if (b==0)”
这个是正确的写法:
if (b)
if (!b).
但有些人可能不总是遵守这个约定,为了保险起见,在为布尔变量赋值时,为true则置为1,为false则置为0.
板凳
rickone [专家分:15390] 发布于 2006-07-24 17:52:00
[quote]请问高手门,这布尔量是什么意思..为什么结果必须要看做整数1和整数0呢???[/quote]
布尔量就是真和假,离散数学学过吧,代数系统<{True,False},Not,And,Or>是标准的布尔代数,也是最基本的,在C语言里要对它编码(应该是在计算机内,任何东西都是数字表示的),在逻辑判断中用0表示假,这里的0可以是任意类型的,可以是byte,word,dword,0就是说它的每一位都是0,而用其它情况表示真,而在C语言中的关系运算,具体指<,>,<=,等,如果运行结果为真,那表达式的值是1(它总要是个确定的吧,这也不和逻辑判断那地方矛盾),如果为假,一样的结果是0。
举个例子,汇编和C中都喜欢这样写循环:
for(int c=10;c;c--)
{
...
}
它将循环10次。
还有(你可以自己实验的):
int a=123,b=0;
printf("%d,%d,%d\n",a<b,a&&b,a||b);
看看什么结果。
3 楼
xiaojin0898 [专家分:30] 发布于 2006-07-24 23:36:00
谢谢各位大哥们哈!!!
小弟真是感激不尽,谢谢大哥们忽忽!!!
小弟偶一定回努力学好C的哈,不会有付大哥们的期望。。。。
我来回复