C语言各种运算符(操作符)的详细讲解

C语言各种运算符(操作符)的详细讲解_第1张图片

1.算数操作符(+、-、*、/、%)

我们在写代码时,少不了用这些运算符。

C语言中为了方便运算,给我们提供了一系列的运算操作符,其中一组操作符叫:

算数操作符+、-、*、/、%————这些又叫做双目运算符(注:操作符也被叫做:运算符,是不同的翻译,意思是⼀样的。)

双目运算符:有两个运算数的,即位于运算符两端的就是运算数,的运算符

1.1  +和-

我们在小学时候就学了许多+和-的运算,它两个在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;
}

1.2 * (乘)

运算符乘是用来完成乘法的

#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;
}

1.3 /(除)

运算符 / 是用来完成除法的

#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;
}

1.4 % (取于)

运算符 % 表⽰求模运算,即返回两个整数相除的余值。这个运算符只能⽤于整数不能⽤于浮点数。

#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;
}

2.赋值操作符(=和复合赋值)

在变量创建的时候给⼀个初始值叫初始化,在变量创建好后,再给⼀个值,这叫赋值。

int a=1;//初始化a
a=100;//给a赋值

赋值操作符 = 是⼀个随时可以给变量赋值的操作符。

2.1 连续赋值

赋值操作符也可以连续赋值,如

int a=1;
int b=2;
int c=3;
c=b=a=5;//连续赋值给从a开始到c

2.2 复合赋值符

我们在写代码时我们经常会对一个数进行自增,自减。

int a=5;
a=a-1;
a=a+1;

为了方便我们也可以写位

int a=5;
a-=1;
a+=1;

C语⾔中提供了复合赋值符,⽅便我们编写代码,这些赋值符有:

+= -=
*= /= %=
//下⾯的操作符后期讲解
>>= <<=
&= |= ^=

3. 单目运算符(++,--,+,-)

C语⾔中还有⼀些操作符只有⼀个操作数,被称 为单⽬操作符。 ++、--、+(正)、-(负) 就是单⽬操作符的。

3.1  ++和--

++ 是一种自增的运算符,它分为:前++,后++

前++:使用之前先自增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

3.2 +(正)和-(负)

这⾥的+是正号,-是负号,都是单⽬操作符。

单目运算符:有一个运算数,即位于运算符一端,的运算符。

注意:运算符 + 对正负值没有影响,是⼀个完全可以省略的运算符,但是写了也不会报错。

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

4.强制类型转换

在操作符中还有⼀种特殊的操作符是强制类型转换,语法形式很简单,如下:

int a = 3.14;
//a的是int类型, 3.14是double类型,两边的类型不⼀致,编译器会报警告

为了消除这个警告,我们就要用到强制类型转换。

int a = (int)3.14;//意思是将3.14强制类型转换为int类型,这种强制类型转换只取整数部分

有一句老话说的好:“强扭的瓜不甜。”我们在使用强制类型转换的时候是迫不得已才使用,一般不会使用。

C语言各种运算符(操作符)的详细讲解_第2张图片

你可能感兴趣的:(C语言,c语言,c++,算法)