继续接着上一次ios从入门到放弃之C基础巩固-----printf函数、scanf函数、scanf函数实现原理来巩固C语言基础,这次学习的是一个非常不起眼的语言基础----运算符,这里主要是对一些比较容易犯错的给拎出来再复习一下,于我而言是有用的,所以即使容易也不厌其烦的来好好复习~~
运算符:
算术运算符:
%取模运算:
1、两侧必须都为整数:
2、 利用%求出来的余数是正数还是负数,由%左边的被除数决定,被除数是正数,余数就是正数,反之则反。
3、如果取模运算的左边小于右边,那么结果就是左边。
类型转换问题:
1、自动类型转换(隐式转换):
对应的就还有一个显示转换,这块就不过多说明了,基本上好多语言都有。
2、自动类型提升:
其中这里有个细节:算术运算符规定只有相同类型的数据才可以进行运算,那对于咱们这个例子很明显10是整型,9.0是小数类型,数据类型不一样,那最终咋又能运算了呢?其实是通过类型提升来达到计算的目的的,如下:
也就是会将小类型int自动转成大类型double,然后再进行运算。
3、参与运算的操作数是什么类型,那么计算出来的结果就是什么类型
而要想如预期,这样做就可以了:
根本原因还是由于在运算时发现这两操作数不一样,而根据“算术运算符规定只有相同类型的数据才可以进行运算”的原则,会自动将2提升为2.0,然后操作数都为double类型之后,那最终的计算结果不就为double了么?所以结果就如预期啦。
另外还有一种做法就是显示转换类型也可以达到相同的效果:
这里有一个比较容易犯错误的写法:
赋值运算符:
这里注意这一点既可:
标红的其实是这么算的:int number =