C语言中if(!x)和if(x) 的等价结构是什么
2个回答
展开全部
if(!x)等价于2113
if(x==0||x=='\0');
if(x)等价于
if(x!=0||!x==0)。
如果布尔表5261达式为 true,则
if
语句内的4102代码块将被执行。如1653果布尔表达式为 false,则
if
语句结束后的第一组代码(闭括号后)将被执行。
“!”:(逻辑非)逻辑运算符。“逻辑非”就是指本来值的反值。
例如:"
!0"
这个逻辑表达式的值为1.(判断的这个数为0,成立,则其表达式的值为1)
"
!1"
这个逻辑表达式的值为0.(判断的这个数非0,不成立,则其表达式的值为0)
C
语言把任何非零和非空的值假定为 true,把零或 null 假定为 false。
扩展资料:
优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。表达式的结合次序取决于表达式中各种运算符的优先级。优先级高的运算符先结合,优先级低的运算符后结合,同一行中的运算符的优先级相同。
相同优先级中,按结合性进行结合。大多数运算符结合性是从左到右,只有三个优先级是从右至左结合的,它们是单目运算符、条件运算符、赋值运算符。
基本的优先级需要记住:
指针最优,单目运算优于双目运算。如正负号。
先算术运算,后移位运算,最后位运算。请特别注意:1
<<
3
+
2
&
7等价于
(1
<<
(3
+
2))&7.
逻辑运算最后结合。
参考资料:
百度百科-运算符优先级
if(x==0||x=='\0');
if(x)等价于
if(x!=0||!x==0)。
如果布尔表5261达式为 true,则
if
语句内的4102代码块将被执行。如1653果布尔表达式为 false,则
if
语句结束后的第一组代码(闭括号后)将被执行。
“!”:(逻辑非)逻辑运算符。“逻辑非”就是指本来值的反值。
例如:"
!0"
这个逻辑表达式的值为1.(判断的这个数为0,成立,则其表达式的值为1)
"
!1"
这个逻辑表达式的值为0.(判断的这个数非0,不成立,则其表达式的值为0)
C
语言把任何非零和非空的值假定为 true,把零或 null 假定为 false。
扩展资料:
优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。表达式的结合次序取决于表达式中各种运算符的优先级。优先级高的运算符先结合,优先级低的运算符后结合,同一行中的运算符的优先级相同。
相同优先级中,按结合性进行结合。大多数运算符结合性是从左到右,只有三个优先级是从右至左结合的,它们是单目运算符、条件运算符、赋值运算符。
基本的优先级需要记住:
指针最优,单目运算优于双目运算。如正负号。
先算术运算,后移位运算,最后位运算。请特别注意:1
<<
3
+
2
&
7等价于
(1
<<
(3
+
2))&7.
逻辑运算最后结合。
参考资料:
百度百科-运算符优先级
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询