1.算术操作符
在写代码时,会进行计算。C语言中有一组操作符叫:算术操作符。分别是:+、-、*、/、%
。而且都是双目操作符。
注:
操作符也叫运算符,都是一个意思。
1.1 +、-和*
+
、-
和*
用来进行加法、减法和乘法。
int i = 2 + 6;
int j = 2 - 6;
int k = 2 * 6;
printf("%d %d %d",i,j,k);//输出 8 -4 12
1.2 /
/
用来进行除法。
int i = 7 / 2;
float j = 7 / 2;
float k = 7 / 2.0;
printf("%d %f %f",i,j,k);//输出 3 3.000000 3.5
注:
当/
两边的操作数都是整数时,则进行的是整数除法,结果只返回整数部分,因此j
的类型纵然是float
,也只会算出3.000000,而不是3.5。
若想得到表达式正确的带有浮点数的结果,则/
两边的操作数必须至少有一个浮点数类型,上方代码中,第三行进行的就是浮点数除法。
1.3 %
%
进行求模(余)运算。
printf("%d",6 % 2);//输出 1
printf("%d",-6 % 2);//输出 -1
注:
%
只能用于整数,不可用于浮点数。
负数求模时,***第一个操作数***决定结果的正负,第一个操作数为正(负),则结果为正(负)。
2.赋值操作符:=和复合赋值
在变量创建时给定一个初始值叫初始化,在变量创建好以后,再给一个值,这叫赋值。
示例:
int a = 100;//初始化
a = 200;//赋值,这里的等号就是赋值操作符
注:
赋值运算符与数学中的等号不同,其区别在于赋值运算符单纯的指把等号右边的值赋予左边的变量,而数学上则指的是左边值等于右边值。
2.1 连续赋值
示例:
int a = 4;
int b = 2;
int c = 1;
a = b = c + 2;//连续赋值,每个表达式都是从右向左依次赋值的
注:
虽说C语言的语法是支持连续赋值的,但是此操作会让我们的代码变得不太直观,因此,我们最好还是拆开写。最好把连续赋值操作变为:
int a = 4;
int b = 2;
int c = 1;
b = c + 2;
a = b;
2.2 复合赋值符
在基于我们对赋值操作符的理解下,理论上,可以进行一个数的自加、自减的操作,如下代码:
int c = 0;
c = c + 2;
c = c - 2;
此时,用复合赋值符可以简化以上的代码:
int c = 0;
c += 2;
c -= 2;
注:
复合赋值符共有10种,分别是:+=、-=、*=、/=、%=、>>=、<<=、&=、|=、^=
。
3.单目操作符
单目操作符是指只作用于一个单一操作数的操作符,其种类有四种:++、--、+、-
。
3.1 ++和–
3.1.1 前置
int a = 0;
int b = 0;
b = ++a;//先进行a = a + 1,然后b = a
printf("%d %d",a,b);//输出结果是:1 1
此代码变量a进行先加运算。
int a = 0;
int b = 0;
b = --a;//先进行a = a - 1,然后b = a
printf("%d %d",a,b);//输出结果是:-1 -1
此代码变量a进行先减运算。
3.1.1 后置
int a = 0;
int b = 0;
b = a++;//先进行b = a,然后a = a + 1
printf("%d %d",a,b);//输出结果是:1 0
此代码变量a进行后加运算。
int a = 0;
int b = 0;
b = a--;//等价于b = a,然后a = a - 1
printf("%d %d",a,b);//输出结果是:-1 0
此代码变量a进行后减运算。
3.2 +和-
这里的+
是正号,-
是负号,是单目操作符。
+
对正负值没有影响,我们一般给变量赋值一个正数时,默认不写,但写了也不会报错。
-
用来改变一个值的正负号,负数加-
变正数,正数加-
变负数。
示例:
int i = 2;
int j = -2;
int k = -i;
printf("%d %d",j,k);//输出 -2 -2
int i = -6;
int j = 6;
int k = -i;
printf("%d %d",j,k);//输出 6 6
4.强制类型转换
强制类型转换的语法形式如下:
(类型)
进行赋值操作时,当左边的类型与右边的类型不同时,编译器会有警告。
int c = 2.23;//c是int类型,2.23是double类型
为了消除警告,我们可以用强制类型转换。
int c = (int)2.23;//意思是将2.23转换成int类型,只取其整数部分。
注:
我们在写代码时,尽量避免没必要的强制类型转换,能不用则不用。
5. 逗号操作符
示例:
int i = 0;
int j = i,i+2,i*2,i-6;
printf("%d",j);//输出 -6
逗号操作符,又称顺序求值运算符,由其分割开的多个表达式组在一起后叫做逗号表达式,代码执行时逗号表达式从左向右依次运行,最后返回逗号表达式中的最后一个子表达式的值。