若x为int类型,请写出与!x等价的C语言表达式(x=0)?,为什么x=0?

 我来答
春瑶凤婵
2019-12-02 · TA获得超过3.5万个赞
知道大有可为答主
回答量:1.2万
采纳率:32%
帮助的人:778万
展开全部
!即为非的意思,就是如果x
=
真,那么!x
就为假,反过来若
x
=
假,则!x为真。
而在c
语言中表达式0为假,不是0的全为真,所以对应的关系表达式为
x
==
0;
即只有当x
==
0时才为真(对应等式成立),其余均为假(对应等式不成立)
楼下的,关系表达式只有六种:
>
,
<
,
>
=
,
<
=
,
!=
,
=
=
你用的是三目运算符(条件运算符,不是条件表达式)。。。
贡永芬夫君
2020-01-14 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.2万
采纳率:31%
帮助的人:997万
展开全部
C里有隐式转换,但x为int,是可以当成bool值使用,会自动转换。规律是:当x=0时
为false
x为非零值,则为true
分析一下,这个语句
x==0
从int角度分析,如果x为0
则结果
true
!x
这个表达式可以写成!((bool)x)x先转换为bool值,x为0,套用bool转换规律,即为false,而!(false)即为true
非零结果自己分析
所以得到两个在逻辑判断上等价
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
赏玉芬贵婉
2019-11-29 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.2万
采纳率:31%
帮助的人:1029万
展开全部
你说的是判断语句x==0吧?分析如下:
!x:如果x非0,那么!x=0,如果x为0,那么!x=1
x==0:如果x非0,那么x==0判断为假,值为0,如果x=0,那么x==0为真,值为1
由上可知,两种表示法对x的判断效果是一样的,即等价
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
承奕声危衣
2019-11-26 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.2万
采纳率:31%
帮助的人:1008万
展开全部
应该是x==0
!x做的其实就是与0比较,看下面的代码
int
a,b=1;
a=!b;
//a=0
翻译成汇编代码:
movl
$1,
-8(%ebp)
#设置b=1
cmpl
$0,
-8(%ebp)
#b与0比较
sete
%al
#若b=0则产生中间变量1否则产生0
movzbl
%al,
%eax
#和上面一句一起产生作用呢
从上面汇编代码可以看出!b其实就是和0比较
懂了记得给分哦^_^
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式