三、算术符与表达式
4、强制类型转换运算符
强制类型转换运算符是一对圆括号,作用是将一个表达式转换成所需要的类型,其一般形式为:
(类型名)(表达式名)
(1) (double)a 将变量 a 转换成 duuble型,并不是变量 a 本身的类型发生变化,而是让整个表达式的结果类型发生变化。请记住强制类型转换时,得到一个所需类型的中间变量,原来变量的类型没有发生变化。
(2) (int)(x+y) 将 x+y的值转换成int型。注意:表达式x+y是用( )括起来的, 如果写成(int)x +y,那就只是将x转换成int型,然后与y相加。
(3) (float)(5%3) 将 5%3 的结果值转换成 float 型。
例:
总结两种数据类型转换:
(1)自动类型转换,不同类型数值变量进行混合运算时 ,系统会尝试将它们的变量类型统一 ,这在运算时不需要开发者参与,系统自动进行类型转换,转换规则请参考:第二章 数据类型、运算符与表达式(七)
(2) 强制类型转换,当自动类型转换无法达到目的时 ,就需要用强制类型转换 ,如 % 取余运算符,要求两侧均为整型量,如果 x 是 float 类型,x%5 就不合法,必须要用 (int)x%5 , 因为强制类型转换运算符优先级高于取余运算符%,所以会先计算 (int)x,得到一个整型中间变量,再对 5 进行取余操作。运算优先级请参考:第二章 数据类型、运算符与表达式(八)
5、自增自减运算符(重要)
自增运算符是两个加号 ++
自减运算符是两个减号--
自增自减运算符是单目运算符,即运算对象个数只有一个。这两个运算符的作用是使变量的值增加1或者减少1。
++i; 先+1后使用
--i; 先-1后使用
i++; 先使用后+1
i--; 先使用后-1
例:
自增和自减运算符常用于在循环语句中,循环变量自增 1 或自减 1 操作,后续讲到循环语句时细说。
注意:自增和自减运算符只能用于变量,不能用于常量、表达式(+、-、*、/等运算符串起来的一个式子),所以 5++、(a+b)-- 都不合法。
在面试中,偶尔会遇到一些非常难为人的考题 ,例:
- i++; //实际等价于-(i++)
i++ +j; //实际等价于(i++)+j
不推荐上面的写法,尽量拆开写