c语言符号且与或

前面就不打了,问题是计算闰年,以下:
a%4==0&&a%100!=0||a%400==0,为什么是错误的,提示‘&&’within‘||’,而(a%4==0&&a%100!=0)||a%400==0,这个是正确的,网上仅仅提出该错误需要加(),但是没说为什么错。是因为强制规定还是不加会导致结果错误?&&的优先级不是高于||吗?求大神解释。

C语言中的逻辑运算符:&&(与运算)、||(或运算)、!(非运算)。

与运算符(&&)和或运算符(||)均为双目运算符。具有左结合性。非运算符(!)为单目运算符,具有右结合性。逻辑运算符和其它运算符优先级的关系可表示如下:

本来没有错误,关系运算符都是按“非与或”顺序来运算的。但是,不同的编译器设计者可能对这个的认识不同,因此,如果不加括号就会有歧义,因此,编译器就会提醒应该加括号(编译中有警告:waring),但你不加,也不算错,只是其结果就是按编译器的运算顺序来操作了。

&&是与,||是或;

&是位与,|是位或;

|就是按住shift在按回车上面一个按钮;

两下就是||;

这个不是错误,是警告warning,编译器怕记不住操作符优先级,而导致错误,因此提示||的优先级高于!=。

扩展资料

C语言内置了丰富的运算符,大体可分为10类:算术运算符、关系运算符、逻辑运算符、位操作运算符、赋值运算符、条件运算符、逗号运算符、指针运算符、求字节数运算符和特殊运算符。

根据运算符可操作的操作数的个数,可把运算符分为一元运算符、二元运算符和多元运算符(一般三元)。优先级:当不同运算符优先级不同时,先计算谁后计算结合性:当不同运算符优先级相同时,先计算谁后计算谁。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-10

分别是  &&和||

C语言中提供了三种逻辑运算符:

&&(与运算)

||(或运算)

!(非运算)


与运算符(&&)和或运算符(||)均为双目运算符。具有左结合性。非运算符(!)为单目运算符,具有右结合性。逻辑运算符和其它运算符优先级的关系可表示如下:

“&&”和“||”低于关系运算符,“!”高于算术运算符。

第2个回答  推荐于2017-10-08
本来没有错误,关系运算符都是按“非与或”顺序来运算的。
但是,不同的编译器设计者可能对这个的认识不同,因此,如果不加括号就会有歧义,因此,编译器就会提醒你应该加括号(编译中有警告:waring),但你不加,也不算错,只是其结果就是按编译器的运算顺序来操作了。本回答被提问者和网友采纳
第3个回答  2014-08-19
&&是与,||是或
&是位与,|是位或
|就是按住shift在按回车上面一个按钮
两下就是||
第4个回答  2014-08-19
||的优先级高于!=
相似回答