算数运算符,顾名思义就是做算术运算呗,无非就是将我们学过的数学中的运算搬到计算机上。
一、正负号
例如可以像下面这样使用:
int x = -12; // 直接在前面加个负号就行
int y = -x;
int z = +y; // +可以省略
二、加减乘除
加减乘法可以像下面这样使用:
int x = 1 + 2; // 加法,将3赋值给变量x
int y = 4 - 1; // 减法,将3赋值给变量y
int z = 3 * 1; // 乘法,将3赋值给变量z
对于除法,我们需要注意,如果是整数相除会丢弃小数部分,如果有浮点数参与除法的话就会保留小数。
这是由于C语言的类型强制转换和数据类型差异所导致的。例如下面的代码中:
- 第一个是由于
6/4
中的6和4默认都是int类型,所以他们的运算结果也是int型1
,又由于接受他的变量x是一个float类型,所以int型1
会自动转换为float型(隐式类型转换),所以结果位1.000000- 第二个是由于
6.0/4
中的6.0
是double型,而4
是int型,所以在进行运算之前会先将int型的4
转为double型’4.0’,然后运算结果位double型的1.5
,然后运算结果经过强制类型转换就成为了float型的1.500000
float x = 6 / 4;
printf("%f\n", x); // 输出 1.000000
float x = (float)(6.0 / 4); // 或者写成 6 / 4.0
printf("%f\n", x); // 输出 1.500000
三、取余
先知道这样两个概念:
被模数
:就是取余符号%前面的操作数
模数
:就是取余符号%后面的操作数
例如,4%2
中,被模数是4,模数是2
注意:取余运算是可以有负数参与的。运算结果的符号与被模数相同
int x1 = 6 % 4; // 2
int x2 = -6 % 4; // -2
int x3 = 6 % -4; // 2
int x4 = -6 % -4; // -2
四、自加自减运算
++
运算,表示自增1
。同理,--
运算,表示自减1
,两者用法一致,故这里只介绍++。
1.单独使用
变量在单独运算的时候,变量
前++
和变量后++
,是没有区别的。
int i = 0;
i++; // i 从 0 自增为 1
++i; // i 从 1 自增为 2
2.复合使用
和
其他变量放在一起使用
或者和输出语句放在一起使用
,前++
和后++
就产生了不同。
- 变量
前++
:变量先自增1,然后再运算。- 变量
后++
:变量先运算,然后再自增1
int x = 0;
int y = x++; // y 为 0,x 为 1,因为是 x 先把值赋值给 y,再自增为 1
int z = --y; // z 为 -1,y 为 -1,因为是 y 先自减为 -1,然后再把值赋值给
五、对除法和取余的练习
/**
* 随意给出一个整数,打印显示它的个位数,十位数,百位数的值。
格式如下:
数字xxx的情况如下:
个位数:
十位数:
百位数:
例如:
数字153的情况如下:
个位数:3
十位数:5
百位数:1
*/
void fun1() {
int x;
printf("请随意给出一个整数:");
scanf("%d", &x);
printf("数字%d的情况如下:\n", x);
printf("个位数:%d\n", x % 10);
// printf("十位数:%d\n", x % 100 / 10); // 方法一
printf("十位数:%d\n", x / 10 % 10); // 方法二
printf("百位数:%d\n", x / 100);
}