12   2  /  2  页   跳转

一个C的问题

学习中……
gototop
 

!x等价于x==0吧  当!x为真时  x==0呀
gototop
 

"!"在C语言中是一个逻辑运算符,表示非运算,意思是对运算符后面的表达式取逻辑非值;
如果表达式是一个逻辑表达式就很好理解,比如:!真==假;!假==真;
你的问题中,0是一个INT型的数值对于数值,进行逻辑运算时,只有0和1两种结果,如果对0取逻辑非,就只能等于1,即!0==1;如果对不是0的值取逻辑非,就只能等于0;所以你的问题的答案是:
如果x等于0,那么!x等于1;如果x不等于0,那么!x等于1。
gototop
 

#define LOGICAL_NOT(x)  (x?0:1)
或者
#define LOGICAL_NOT(x)  (x==0?1:0)
其实逻辑真假不能简单用1和0表示,应该是true/false,但这仅仅在C99里支持,这里仅用1,0分别代替true,false
gototop
 

!x本身的值不是0就是1,它与x的值相反;
所谓关系运算符,是指大于(>)、小于(<)、等于(==)、 大于等于(>=)、小于等于(<=)和不等于(!=)六种。

这道题的意思就是让你用关系运算符(而不用!这个逻辑运算符)表示出表达式!x。

答案之一是(x==1?0:1)
gototop
 

!x是一个逻辑表达式,如果x为非零值,则!x表达式为0,否则为1
恩~~~好像都是这么认为德阿
我认为也是这样
gototop
 
12   2  /  2  页   跳转
页面顶部
Powered by Discuz!NT