网问答>>C语言中的问题设inti=1,j=2,k=3那么!(i=j)&&(j=k)为什么不先算两边括号里边?
问题
已解决

C语言中的问题设inti=1,j=2,k=3那么!(i=j)&&(j=k)为什么不先算两边括号里边?

时间:2024-10-22 00:11:45
C语言中的问题设inti=1,j=2,k=3那么!(i=j)&&(j=k)为什么不先算两边括号里边?
最佳回答
1. 首先要明确运算符的优先级: 在C语言中,赋值运算符=的优先级低于逻辑非!和逻辑与&&。早纯 对于表达式!(i = j)&&(j = k),先计算!运算符。2. 具体计算过程如下: 计算!(i = j)时,先执行i = j,此时i的值被赋为2,然后!(i = j)就相当于!(2),结果为0(因为!运算符是逻辑非,2在逻辑判断中为真,取非后为假)。 根据逻辑与&&的短路特性,当&&左边的表达式的值为0(假)时,整个逻辑与表达式的值已经确定为0,就不会再计算&&右边的表达式(j = k)了。所以不是不按照括号的顺序先计算括号内的内容,而是因为运算符优先级的规则陆谈咐侍没和逻辑与的短路特性导致了这样的计算顺序。
时间:2024-10-22 00:11:45
本类最有帮助
Copyright © 2008-2013 www.wangwenda.com All rights reserved.冀ICP备12000710号-1
投诉邮箱: