C语⾔中为了⽅便运算,提供了⼀系列操作符,其中有⼀组操作符叫:算术操作符。
分别是: + - * / % ,同时这些操作符也都是双⽬操作符。操作符也被叫做运算符。
一.+,- , *, / ,%
1.+和 -
这两个家喻户晓的符号,就是加号和减号,用来完成加法和减法。
+ 和 - 都是有2个操作数的,位于操作符两端的就是它们的操作数,这种操作符也叫双⽬操作符。
比如3+2, 3,2就是操作数。
#include <stdio.h>
int main( )
{
printf("%d\n",3+2);
return 0;
}
加法既适用于这样的常量值,也适用于变量。如:
同样,减法也是如此。
2.*,乘法
同理可得
3./,除法
除法也有同上述加减乘相同的用法。
除号的两端是整数,就执行的是整数除法,得到的结果也是整数。
若除号两端至少有一个数是浮点数,则执行的就是浮点数的除法。
至于为什么是4.500000,是因为,无论是%f,还是%lf,打印的时候默认是小数点后6位,如果不够6位的话,用0来填充。
值得注意是:C 语言里面的整数除法是整除,只会返回整数部分,丢弃小数部分。
4.%,取余
运算符 % 表⽰求模(余)运算,即返回两个整数相除的余值。这个运算符只能⽤于整数,不能⽤于浮点数。
负数求模的规则是,结果的正负号由第⼀个运算数的正负号决定。
二.赋值操作符:= 和复合赋值
在变量创建的时候给⼀个初始值叫初始化,在变量创建好后,再给⼀个值,这叫赋值。
#include <stdio.h>
int main( )
{
int a = 1;//初始化
a = 10;//赋值
return 0;
}
1.连续赋值
#include <stdio.h>
int main( )
{
int a = 3;
int b = 5;
int c = 0;
c = b = a+3;//连续赋值,从右向左依次赋值
}
C语⾔虽然⽀持这种连续赋值,但是写出的代码不容易理解,建议还是拆开来写,这样⽅便观察代码的执⾏细节。
#include <stdio.h>
int main( )
{
int a = 3;
int b = 5;
int c = 0;
b = a+3;
c = b;//分开计算更便于思考和观察
}
2.复合赋值符
#include <stdio.h>
int main( )
{ a=10;
a+=3;// 等价于 :a=a+3 加赋值
a-=3;// 等价于 :a=a-3 减赋值
a*=3;// 等价于 :a=a*3 乘赋值
a/=3;// 等价于 :a=a/3 除赋值
a%=3;// 等价于 :a=a%3 取余赋值
printf("%d\n",a);
}
此外还有:
<<= 左移赋值
<<= 右移赋值
&= 位与赋值
^= 位异或赋值
|= 位或赋值
三.单目操作符:++ -- + -
前⾯介绍的操作符都是双⽬操作符,有2个操作数的。C语⾔中还有⼀些操作符只有⼀个操作数,被称为单⽬操作符。 ++、--、+(正)、-(负) 就是单⽬操作符的。
1.++和--
++操作符:是让自己增加1
(1)前置++
口诀:先加一,再使用。
意味先让a加1,然后再赋值给b。
(2)后置++
口诀:先使用,后加一。
而后置++,则会先把a值先赋给b,再自增1。
--操作符:同理,与++一致,是让自己减少1
(1)前置--
口诀:先减一,再使用。
(2)后置--
口诀:先使用,再减一。
2.+和-
这里的+和-意味正号和负号,他们都是单目操作符。
运算符+对正负值没有影响,是一个完全可以省略的运算符,并且写了也不会报错。
运算符-则用来改变一个值的正负号,正如我们学过小学数学知道的那样,正数前面加上-,即变为负数,负数前加上-,则变为正数。
四.强制类型转换
在操作符中还有一种特殊的操作符是强制类型转换,语法如下:(类型)
#include <stdio.h>
int main()
{
int a =(int) 13, 14;
}
写代码时,遇上类型不一样的时候,或者想把一种类型转换成另一种类型,则可以使用强制类型转换,否则会产生警报。
但是,如果不是到了万不得已的时候,还是不要用强制类型转换的手段为好。