(21)算术运算符、逻辑和关系运算符

来源:互联网 发布:c语言随机整数 编辑:程序博客网 时间:2024/05/21 11:03

算术运算符:

作用于算术类型或者指针类型。

一元运算符的优先级最高,接下来是乘除,最低是加减。

除非另做特殊说明,算术运算符都能作用于任意算术类型以及任意能转换为算术类型的类型。算术运算符的运算对象和求值结果都是右值。

一元运算符作用于指针或者算术值时,返回运算对象值的一个(提升后的)副本。


算术表达式有可能产生未定义的结果:

一.数学性质本身:除数不能0

二.计算机的特点:计算机结果超出该类型所能表示范围时就会溢出


在除法运算中,如果两个运算对象的符号相同则商为正,否则商为负。而且负值的商一律向0取整(即直接切除小数部分)。


逻辑和关系运算符:

逻辑运算符作用于任意能 转换成布尔值的类型。逻辑运算符和关系运算符的返回值都是布尔类型。


逻辑与运算符(&&)和逻辑或运算符(||)都是短路求值。

短路求值:当且仅当左侧运算对象无法确定表达式的结果时才会计算右侧运算对象的值。

逻辑与运算符:当且仅当左侧运算对象为真时才对右侧对象求值

逻辑或运算符:当且仅当左侧运算对象为假时才对右侧对象求值


逻辑非运算符(!):将运算对象的值取反后返回。


关系运算符:

关系运算符比较运算对象的大小关系并返回布尔值,关系运算都满足左结合定律。

因为关系运算符的求值结果都是布尔值,索引将几个关系运算符连写在一起会产生意想不到的结果:

if(i<j<k)    //将会拿i<j的布尔值结果和K比较



0 0
原创粉丝点击