算数运算符

C语言里的算数用算符
+  加法运算符
-   减法运算符,或负值运算符
*  乘法运算符
/   除法运算符
% 模运算符,或称取余运算符,要求%两侧均为整型数据 内存

运算顺序
1> 算术表达式
用算术运算符将数据链接起来的式子,称为“算术表达式”。好比a + b、10 * 5等。若是表达式比较复杂的话,那么就要注意一下它的运算顺序。表达式的运算顺序是按照运算符的结合方向和优先级进行的。
2> 结合方向
算术运算符的结合方向是从左到右。例如表达式2+3+4,先计算2+3。
3> 优先级
优先级越高,就越先结合,此时并无参与运算仅仅是操做符与操做数结合到了一块儿:
负值运算符(-) > 乘(*)、除(/)、模(%)运算符 > 加(+)、减(-)运算符
4> 小括号
若是须要先计算优先级低的可使用小括号()括住,小括号的优先级是最高的!
例如4+5*8-2默认的计算顺序是:*、+、-
若是想先执行加法运算,就能够这样写:(4+5)*8-2,最后的结果都是不同的\
5>计算顺序
多个操做符相互混合运算的话,优先级高的操做符与其操做数先结合到了一块儿,成为一个总体,
可是其并无计算,计算时要看最外层的运算符是什么,它会按照最外层操做符的结合方向进行计算,
而后是剥洋葱式一层一层的计算
例如表达式2*4+5*8/-2的计算顺序为:首先  - 与 2  结合  ,而后2 * 4 结合,  5 * 8结合
 而后是(5 * 8)/  -2 结合,结合后的结果为  (2 * 4) + ((5 * 8)/(-2)),此时最外层为 +
 加法运行先计算左边的操做数,那么 2 * 4 先进行计算 结果为 8  + ((5 * 8)/(-2)) ,而后计算+右边的操做数  ((5 * 8)/(-2)) 
它的最外层是 / , 那么先计算操做符左边的数 5 * 8 计算后结果为 40 / (-2)  , 而后计算40 /(-2)结果为-20
如今计算表达式为  8 + (-20)  最终的结果为 -16数据类型


算术运算的注意点float

1.自动类型转换
int a = 10.6;
int b = 10.5 + 1.7;
2.自动将大类型转换为了小类型,会丢失精度
自动类型提高
int b = 10.5 + 10;
3.将右边的10提高为了double类型
double b = 1.0 / 2;
解决除法的精度问题
4.强制类型转换
double a = (double)1 / 2;
double b = (double)(1 / 2);im


自动类型提高
相同数据类型的值才能进行运算(好比加法运算),并且运算结果依然是同一种数据类型。系统会自动对占用内存较少的类型作一个“自动类型提高”的操做
常见的自动类型提高
float a = 10 + 3.45f;// int 提高为 float     
int b = 'A' + 32; // char 提高为 int
double c = 10.3f + 5.7; // float 提高为 double数据

相关文章
相关标签/搜索