我们在写代码时,少不了用这些运算符。
C语言中为了方便运算,给我们提供了一系列的运算操作符,其中一组操作符叫:
算数操作符:+、-、*、/、%————这些又叫做双目运算符(注:操作符也被叫做:运算符,是不同的翻译,意思是⼀样的。)
双目运算符:有两个运算数的,即位于运算符两端的就是运算数,的运算符
我们在小学时候就学了许多+和-的运算,它两个在C语言中也是用来完成加减法的
用程序举例就是:
#include
int mian ()
{
int a=10;
int b=20;
int c=a+b;
int d=a-b;
printf("a=%d b=%d c=%d d=%d\n",a,b,c,d);
return 0;
}
运算符乘是用来完成乘法的
#include
int main ()
{
int a=1;
int b=2;
int c=a*b;
printf("a=%d b=%d c=%d\n",a,b,c);//输出a,b 和a*b的值
return 0;
}
运算符 / 是用来完成除法的
#include
int main ()
{
int a=2;
int b=5;
int c=b/a;
printf("a=%d b=%d c=%d\n",a,b,c);//输出a,b 和b/a的值
printf("c=%f\n",c);//这里即使是%f来输出但是输出的只是2.0,不是2.5
return 0;
}
注意:在C语言中整数除法是整除,返回的只是整数,小数部分丢弃,如果希望得到浮点数的结果,两个运算数必须⾄少有⼀个浮点数,这时 C 语⾔就会进⾏浮点数除法。
#include
int main ()
{
int a=2;
int b=5.0;
int c=b/a;
printf("c=%f\n",c);
return 0;
}
运算符 % 表⽰求模运算,即返回两个整数相除的余值。这个运算符只能⽤于整数,不能⽤于浮点数。
#include
int main ()
{
int a=2;
int b=5;
int c=b%a;
printf("a=%d b=%d c=%d\n",a,b,c);//输出a,b 和b%a的值
return 0;
}
注意:负数求模的规则是,结果的正负号由第⼀个运算数的正负号决定。
#include
int main ()
{
printf("%d\n", 11 % -5); // 1
printf("%d\n",-11 % -5); // -1
printf("%d\n",-11 % 5); // -1
return 0;
}
在变量创建的时候给⼀个初始值叫初始化,在变量创建好后,再给⼀个值,这叫赋值。
int a=1;//初始化a
a=100;//给a赋值
赋值操作符 = 是⼀个随时可以给变量赋值的操作符。
赋值操作符也可以连续赋值,如
int a=1;
int b=2;
int c=3;
c=b=a=5;//连续赋值给从a开始到c
我们在写代码时我们经常会对一个数进行自增,自减。
int a=5;
a=a-1;
a=a+1;
为了方便我们也可以写位
int a=5;
a-=1;
a+=1;
C语⾔中提供了复合赋值符,⽅便我们编写代码,这些赋值符有:
+= -=
*= /= %=
//下⾯的操作符后期讲解
>>= <<=
&= |= ^=
C语⾔中还有⼀些操作符只有⼀个操作数,被称 为单⽬操作符。 ++、--、+(正)、-(负) 就是单⽬操作符的。
++ 是一种自增的运算符,它分为:前++,后++。
前++:使用之前先自增1,再是使用。(先加1,后使用)
int a = 10;
int b = ++a;//++的操作数是a,是放在a的前⾯的,就是前置++
printf("a=%d b=%d\n",a , b);
后++:先使用了,然后自增1。(先使用,后加1)
int a = 10;
int b = a++;//++的操作数是a,是放在a的后⾯的,就是后置++
printf("a=%d b=%d\n",a , b);
相同的 前--:先减1,后使用。
int a=10;
int b = --a;//--的操作数是a,是放在a的前⾯的,就是前置--
printf("a=%d b=%d\n",a , b);//输出的结果是:9 9
后--:先使用,后减1。
int a = 10;
int b = a--;//--的操作数是a,是放在a的后⾯的,就是后置--
printf("a=%d b=%d\n",a , b);//输出的结果是:9 10
这⾥的+是正号,-是负号,都是单⽬操作符。
单目运算符:有一个运算数,即位于运算符一端,的运算符。
注意:运算符 + 对正负值没有影响,是⼀个完全可以省略的运算符,但是写了也不会报错。
int a = +10; 等价于 int a = 10;
相反的运算符 - ⽤来改变⼀个值的正负号,负数的前⾯加上 - 就会得到正数,正数的前⾯加上 - 会得到负数。
int a = 10;
int b = -a;
int c = -10;
printf("b=%d c=%d\n", b, c);//这⾥的b和c都是-10
int a = -10;
int b = -a;
printf("b=%d\n", b); //这⾥的b是10
在操作符中还有⼀种特殊的操作符是强制类型转换,语法形式很简单,如下:
int a = 3.14;
//a的是int类型, 3.14是double类型,两边的类型不⼀致,编译器会报警告
为了消除这个警告,我们就要用到强制类型转换。
int a = (int)3.14;//意思是将3.14强制类型转换为int类型,这种强制类型转换只取整数部分
有一句老话说的好:“强扭的瓜不甜。”我们在使用强制类型转换的时候是迫不得已才使用,一般不会使用。