C语言操作符详解(二)

一.条件操作符

     三目操作符:

 举例子:下面是一段正常比大小的代码,接下来可以尝试使用三目操作符来编写。

 

 

二.逗号表达式

举例子: 

这题我们可以知道d才是真正判断的关键 ,不过有时候前面的式子也可能会影响到最终结果。

 

 这段代码重复性过高,我们可以用逗号表达式来尝试优化。

 

 

三.下标引用、函数调用和结构成员

 

 

 

 当上传结构体的地址时,用指针接收的同时,也可以用(*pb)解引用来找到结构体。

四.表达式求值

4.1 隐式类型转换

这句话说白了就是自身大小小于整型的,都要进行整型提升。

 

 

 我们先列出5与126的二进制序列,因为char是8bit位,所以截取8位出来。又因为是char类型两个数相加,所以我们需要整型提升。

因为是正数,所以整型提升的时候看符号位,char又是signed char有符号。a与b的符号位都是0,所以补0至32位。最后相加得到新的32bit位,因为要存储在char c中,故再截取8位下来,c是数字相加的整型,所以还要整型提升,符号位为1,故补1至32位(此处为补码)。因为我们要打印整型c,所以需要原码。对补码取反+1得到原码,结果为-125.

例1:

这里打印后只有c不用整型提升(因为大小刚好就是等于整型)。而a与b整型提升后已经不满足打印条件了。

 有了符号后默认计算,也发生了整型提升。

4.2 算术转换

就是说当大小已经大于整型了,那么改考虑的不是整型提升,而是算术转换。

 

 

4.3 操作符的属性

 

 

 

 

 

猜你喜欢

转载自blog.csdn.net/fax_player/article/details/132355156
今日推荐