C语言中if(!x)和if(x) 的等价结构是什么

 我来答
iiiiiiiipl
2019-06-02 · TA获得超过9921个赞
知道答主
回答量:68
采纳率:66%
帮助的人:3.7万
展开全部

if(!x)等价于

if(x==0||x=='\0');

if(x)等价于

if(x!=0||!x==0)。

如果布尔表达式为 true,则 if 语句内的代码块将被执行。如果布尔表达式为 false,则 if 语句结束后的第一组代码(闭括号后)将被执行。

“!”:(逻辑非)逻辑运算符。“逻辑非”就是指本来值的反值。

例如:" !0" 这个逻辑表达式的值为1.(判断的这个数为0,成立,则其表达式的值为1)

" !1" 这个逻辑表达式的值为0.(判断的这个数非0,不成立,则其表达式的值为0)

C 语言把任何非零和非空的值假定为 true,把零或 null 假定为 false。

扩展资料:

优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。表达式的结合次序取决于表达式中各种运算符的优先级。优先级高的运算符先结合,优先级低的运算符后结合,同一行中的运算符的优先级相同。

相同优先级中,按结合性进行结合。大多数运算符结合性是从左到右,只有三个优先级是从右至左结合的,它们是单目运算符、条件运算符、赋值运算符。

基本的优先级需要记住:

指针最优,单目运算优于双目运算。如正负号

先算术运算,后移位运算,最后位运算。请特别注意:1 << 3 + 2 & 7等价于 (1 << (3 + 2))&7.

逻辑运算最后结合。

参考资料:

百度百科-运算符优先级

back_bin
2011-03-17 · TA获得超过213个赞
知道答主
回答量:101
采纳率:0%
帮助的人:89.4万
展开全部
if(!x)等价于if(x == 0)
if(x)等价于if (x !=0)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
风若远去何人留
推荐于2017-09-06 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450112
专业C/C++软件开发

向TA提问 私信TA
展开全部
if语句为判断语句,其功能为,如果括号内的表达式为真,则执行,否则不执行。
所以无论括号内为何种表达式,最终都是用按照逻辑运算表达式取值的。也就是结果为0,则按假处理,否则按真处理。
于是可以得到
if(x) 也就是当x非0则真,否则为假。等效于if(x != 0)。
类似的,if(!x)也就是当x为0则真,否则为假。等效于 if(x == 0)。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式