1.双目操作符
在写代码的时候,一定会设计到计算。
C语⾔中为了⽅便运算,提供了⼀系列操作符,其中有⼀组操作符叫:算术操作符。分别是:+ 、- 、*、 /、 % ,这些操作符都是双⽬操作符
注意:操作符也叫:运算符,是不同的翻译,但是意思是一样。
1.1 + 和 -
+ 和 - ⽤来完成加法和减法。
+ 和 - 都是有2个操作数的,位于操作符两端的就是它们的操作数,这种操作符也叫双⽬操作符
#include <stdio.h>int main()
{int x = 0;x = 2 + 3;printf("%d\n", x); //输出5return 0;
}
式子x = 2 + 3,计算是从右向左计算,并赋值给x。
1.2 *
运算符*用来完成乘法
#include <stdio.h>
int main()
{printf("%d\n", 5 * 5); //输出25return 0;
}
1.3 /
运算符 / 用来完成除法
#include <stdio.h>
int main()
{printf("%d\n", 6 / 4); //输出1printf("%f\n", 6 / 4); //输出0.000000return 0;
}
这是因为:1. 除号俩端都是整数的时候,是按照整数运算的方式计算的,得到的是商。
2.除号的俩端如果有小数,执行的是小数除法,得到的是小数。
例子:
printf("%f\n", 6 / 4.0); //输出1.500000
注意: 如果希望得到浮点数的结果,两个运算数必须⾄少有⼀个浮点数,这时C语⾔就会进⾏浮点数除法
小例子:
大家来做一下这一个题目。
#include <stdio.h>
int main()
{int score = 5;score = (score / 20.0) * 100;printf("%d\n", score); //输出25return 0;
}
因为是20.0所以是浮点数除法,得到的是小数0.25,乘以100,输出25.
大家做对了吗?
1.4 %
运算符 % 表⽰求模(余)运算,即返回两个整数相除的余值。这个运算符只能⽤于整数,不能⽤于浮点数。
#include <stdio.h>
int main()
{int x = 6 % 4;printf("%d\n", x); //输出2return 0;
}
当然了,还有负数求模,结果的正负号由第一个运算数的正负号决定。
#include <stdio.h>
int main()
{printf("%d\n", -11 % 5); //输出-1printf("%d\n", 11 % -5); //输出1printf("%d\n", 11 % 5); //输出1return 0;
}
赋值操作符:=和复合赋值
在变量创建的时候给⼀个初始值叫初始化,在变量创建好后,再给⼀个值,这叫赋值。
int a = 100; //初始化
a = 50; //赋值
赋值操作符 = 是⼀个随时可以给变量赋值的操作符.
连续赋值
赋值操作符也可以连续赋值,如:
#include <stdio.h>
int main()
{int a = 3;int b = 5;int c = 0;c = b = a + 5;return 0;
}
C语⾔虽然⽀持这种连续赋值,但是写出的代码不容易理解,建议还是拆开来写,这样⽅便观察代码的 执⾏细节。
int main()
{int a = 3;int b = 5;int c = 0;b = a + 5;c = b;return 0;
}
这样写,在调试的是,每⼀次赋值的细节都是可以很⽅便的观察的。
2.单目操作符
前⾯介绍的操作符都是双⽬操作符,有2个操作数的。C语⾔中还有⼀些操作符只有⼀个操作数,被称 为单⽬操作符。 ++ 、- 、 +( 正 ) 、-( 负 ) 就是单⽬操作符的。
2.1. ++和--
++是⼀种⾃增的操作符,⼜分为前置++和后置++,--是⼀种⾃减的操作符,也分为前置--和后置--.
前置++
int a = 10;
int b = ++a;//++ 的操作数是 a ,是放在 a 的前⾯的,就是前置 ++
printf("a=%d b=%d\n",a , b); //输出a 和 b 都是 11
计算⼝诀:先+1,后使⽤;
a原来是10,先+1,后a变成了11,再使⽤就是赋值给b,b得到的也是11,所以计算技术后,a和b都 是11,相当于这样的代码:
后置++
int a = 10;
int b = a++;//++ 的操作数是 a ,是放在 a 的后⾯的,就是后置 ++
printf("a=%d b=%d\n",a , b);
计算⼝诀:先使⽤,后+1
a原来是10,先使⽤,就是先赋值给b,b得到了10,然后再+1,然后a变成了11,所以直接结束后a是 11,b是10,相当于这样的代码。
注意:前置 -- 和 后置 --和前面的++同样的。
+ 和 -
这⾥的+是正号,-是负号,都是单⽬操作符。
运算符 + 对正负值没有影响,是⼀个完全可以省略的运算符,但是写了也不会报错。
int a = +10; 等价于 int a = 10;
运算符 - ⽤来改变⼀个值的正负号,负数的前⾯加上 就会得到正数,正数的前⾯加上 会得负数。
int a = 10;
int b = -a; //输出-10
强制类型转换
在操作符中还有⼀种特殊的操作符是强制类型转换,语法形式很简单,形式如下:
(类型)
例子:
int a = (int)3.14;// 意思是将 3.14 强制类型转换为 int 类型,这种强制类型转换只取整数部分
俗话说,强扭的⽠不甜,我们使⽤强制类型转换都是万不得已的时候使⽤,如果不需要强制类型转化 就能实现代码,这样⾃然更好的。