1.算数操作符+,-,*,/,% 双目操作符
算数操作符也叫运算符,包含加、减、乘、除、取模,+,-,*,/,%,这些操作符都是双目操作符,因为每个运算操作都有两个操作数,位于操作符两端的叫操作数,例如3 + 2,5 * 6,等等
除法 /
需要注意的是除法运算,我们观察到7/2的结果是3,这是因为在C语言中,整型相运算,只能得到整型,如果我们想让这个计算值变得准确,就让俩个操作数其中一个或者两个为小数,并打印浮点数类型的数据。
只要执行的是整数除法,就算返回浮点数,也得不到精确的结果
#include<stdio.h>
int main()
{
int a = 8;
int b = 2;
int c = 7;
printf("%d\n", a + b);
printf("%d\n", a * b);
printf("%d\n", a / b);
printf("%d\n", c / b);
printf("%f\n", 7.0 / b);
printf("%f\n",c / b);
return 0;
}
取模 %
%表示求模运算,返回两个整数相除的余值,只能用于整数,不能用于浮点数
负数求模,返回值的符号取决于第一个运算数的符号,负数求模这个场景很少发生,但是C语言有这方面的规则
int main()
{
printf("%d\n", -3 % 2);
printf("%d\n",3 % -2);
return 0;
}
2.赋值操作符 =
支持从右往左连续赋值,但是这样使代码不分明,不建议使用。
int main()
{
int a = 2;//初始化
int b = 3;
int c = 0;
c = b = a + 3;
printf("%d\n", b);
printf("%d\n",c);
return 0;
}
3.复合赋值 +=,-=,*=,/=,%=
自加,自减,自乘,自除, 自取模等
a = a+3 等价于 a += 3
a = a-3 等价于 a -= 3
a = a*3 等价于 a *= 3
a = a/3 等价于 a /= 3
a = a%3 等价于 a %= 3
除此之外,还有其他复合赋值的操作符
>>=
<<=
&=
|=
^=
4.单目操作符,前置++,后置++等,++a与a++的区别
++,--,自增自减操作符,加减的大小为1,a++等价于a=a+1
前置++ or --, 先加减,后使用
后置-- or ++,先使用,后加减
如下图所示,b的值先赋给c后再自增,所以c=1,b=2, a先自增再将值赋给d,所以d=2.
int main()
{
int a = 1;
int b = 1;
int c = b++;
int d = ++a;
printf("d=%d,c=%d,b=%d\n", d,c,b);
return 0;
}
5. 单目操作符+,-
与数学思维同理,+对所有变量或者数字没有作用,但是-(负号)能改变变量或者值的符号,但是形如int a==--10的形式 的赋值是非法的。
int main()
{
int a = 2;
int b = -a;
int c = +a;
printf("%d\n %d\n",b,c);
return 0;
}
6.强制类型转换(类型)
int main()
{
//int a = 3.14;//左右两边类型不一样编译器会报警
int a = (int)3.14;
printf("%d\n",a);
return 0;
}