首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

c语言中求值顺序难道说不是完全按照运算符的优先级来判断顺序的吗

2013-03-22 
c语言中求值顺序难道不是完全按照运算符的优先级来判断顺序的吗#include stdio.hint main(void){int cou

c语言中求值顺序难道不是完全按照运算符的优先级来判断顺序的吗

#include <stdio.h>
int main(void)
{
int count = 0;
int sum = 12;
int average = 6;
    if(sum/count < average)
{
    printf("good\n");
}
    else
{
printf("bad\n");
}

}

这个代码因为没有对除数进行非0判断而产生错误,exe已经停止工作。

#include <stdio.h>
int main(void)
{
int count = 0;
int sum = 12;
int average = 6;
    if(count != 0 && sum/count < average)
{
    printf("good\n");
}
    else
{
printf("bad\n");
}

}

这个代码是有对除数的非0判断,但是有一个问题,/的优先级高于!=的优先级,应该会先执行除法运算,但是问题来了,这个程序能够正常工作。

这个时候难道不是按照优先级的顺序进行运算吗??
[解决办法]
&&表达式要求左边的先算,为真,再计算右边的表达式
[解决办法]
&& 或 
[解决办法]
 都是先计算左边吧,如果左边为假的话&&右边就不计算了直接返回假;如果左边为真,
[解决办法]
右边也不计算了,直接返回真

热点排行