x=y==5与x=n%2.5。在C语言的赋值表达式中为什么前一个是正确的,后一个是错误的?

如题所述

y==5这是一个关系表达式,如果y=5返回真1,否则返回假0,且关系运算符的优先级高于赋值运算符,所以x=y==5相当于x=(y==5)是正确的
%表示取余运算,他的两个变量都必须是整数,所以后一个不正确
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-04-12
x = y==5 这是对的,= 优先级底,先运算y==5,如果相等就是1,不相等就是0,这样其实就是x=0 或x=1,正确。后面的%运算符不能对浮点数操作,浮点求余用fmod函数,引用math.h本回答被提问者和网友采纳
第2个回答  2015-06-26
1)x = y==5
在c中 ==的优先级比=高,因此这个表达式先计算判断表达式 y == 5,判断表达式不成立时为0;成立时结果为非零。然后将判断结果赋值给变量x;
2)%是取余数运算符,运算符前后两个操作数必须整数类型的(int, unsigned, char, short)。
相似回答