关注

C语言操作符详解

        在上一篇文章中,小编为大家解析了C语言变量这一名词,相信大家对变量已经不陌生了,有了变量的基础后,我们就可以开始学习C语言中的操作符了,我们对变量的操控就需要通过操作符来实现,话不多说,让我们开启新一期的文章吧!

1.算术操作符

        我们在写代码的时候,一定会涉及到计算;C语言为了方便运算提供了一系列的操作符,其中就有一组的操作符叫做算数操作符,他们分别是:+-*/%,这些操作符都是双目操作符,在这里小编声明一下,操作符也叫运算符,只不过是叫法不同,意思是一样的。

1.1 + 和 -

        相信读者们大概能猜到 + - 这两个操作符是用来干啥的,没错,就是用来完成加法和减法的,+- 都有两个操作数,这两个操作数都位于操作符的两端,有两个操作数的这种操作符我们也叫双目操作符,下面小编就拿例子来说明:

#include <stdio.h>
int main()
{
     int x = 100 + 66;
     int y = 30 - 9;
     printf("%d \n", x);
     printf("%d \n", y);
     return 0;
}
上述代码运行结果

1.2 * 

        * 是用来完成乘法的,这里小编要提醒大家的是,这个与指针中的解引用符号 要区分一下,指针中的解引用是单目操作符,只有一个操作数,而乘法 * 是双目操作符,关于解引用这个操作符小编会在深入理解指针这一篇文章中为大家详细讲解。现在小编还是一样使用代码给大家举例:

#include <stdio.h>
int main()
{
     int mul = 30;
     printf("%d \n", mul * mul);
     return 0;
}
上述代码运行结果

1.3 / 

        / 是用来完成除法运算的,但是要注意的是如果 / 两端的数是整数的话,得到的结果也是整数,附上代码说明:

#include <stdio.h>
int main()
{
     float div1 = 6 / 4;
     int div2 = 6 / 4;
     printf("%f\n", div1);
     printf("%d\n", div2);
     return 0;
}
上述代码运行结果

        我们可以发现,div1这个变量的数据类型虽然是浮点型的,但是 6 / 4 的结果是1.000000 而不是1.5。原因就是C语言中整数除法是整除,只会返回整数部分,丢弃小数部分。从这里我们也可以发现,商的结果与被除数和除数数据类型无太多差异,接下来我们就来学习一下如何让C语言进行浮点数除法(小数除法)。

        如果希望得到浮点数的结果,两个操作数中必须有一个是浮点数,这时候C语言才会进行浮点数除法,下面附上代码供读者们参考:

#include <stdio.h>
int main()
{
     float x = 6 / 4.0;//或者写成6.0 / 4
     printf("%f\n", x);
     return 0;
}
上述代码运行结果

         上述示例中,我们将除法的一个操作数改变成了浮点数,C语言执行了整数除法,得到的结果就是1.5

        到这里小编相信大家已经知道C语言的两种除法形式,接下来小编给读者一道例题:请读者口述下面的代码中score为多少?

#include <stdio.h>
int main()
{
     int score = 5;
     score = (score / 20) * 100;
     return 0;
}

        上面的代码,你可能觉得经过运算,score 会等于 25但是实际上 score 等于0这是因为 score / 20 是整除,会得到⼀个整数值 0,所以乘以 100 后得到的也是 0

上述代码调试结果

        为了想要得到预想的结果,我们需要将20改成20.00,让C语言执行浮点数除法,下面附上一段代码供读者参考:

#include <stdio.h>
int main()
{
	int score = 5;
	score = (score / 20.00) * 100;//将20改成20.00
	return 0;
}
上述代码调试结果

         可以通过对内存的观察发现,将20改成20.00后,C语言执行的是浮点数除法,score的结果与我们预想的一样。

1.4 %

        相信大家平时经常接触到 % ,但是C语言中的 % 是取模的意思,我们可以通过它进行求余(模)运算,即返回两个整数相除的余数;要注意的一个点就是,这个运算符只能运用于整数,不能用浮点数,下面给大家附上代码说明取模运算符的使用方法:

#include <stdio.h>
int main()
{
     int x = 6 % 4;
     return 0;
}
上述代码调试结果

        6 除 4 的余数为1 余 2 ,这与我们调试的结果一样。

        刚刚给读者们介绍的都是整数的取模运算,那负数的取模运算呢?请读者们牢记一个点,负数的求模规则是:结果的正负号由第一个操作数的正负号决定,下面给大家举个例子:

#include <stdio.h>
int main()
{
     printf("%d\n", 11 % -5);
     printf("%d\n",-11 % -5);
     printf("%d\n",-11 % 5);
     return 0;
}
上述代码运行结果

        我们从结果就可以观察出,取模结果的正负号是由第一个操作数(11 或 -11)决定的。

2.赋值操作符

2.1 =

        上一篇文章中小编有说过,在变量创建的时候给一个初始值叫做初始化。在变量创建好后,再给一个值,这就叫做赋值。

int num = 100;//初始化
num = 300;//赋值

是一个赋值操作符,这是一个随时随地可以给变量赋值的操作符。

2.1.1 连续赋值

        赋值操作符 = 也可以连续赋值:

int a = 3;
int b = 5;
int c = 0;
c = b = a+3;//连续赋值,从右向左依次赋值

        小编要提醒大家的一点是,C语言虽然支撑这种连续赋值,但是这种代码不便于理解,建议将他们拆开来写,这样方便观察代码执行的细节。我们可以将上述代码的连续赋值拆开写成:

int a = 3;
int b = 5;
int c = 0;
b = a+3;
c = b;

        这样写的话,在调试的时候我们就可以很清晰的观察每一次赋值的细节。

2.2 复合赋值符

        也许有读者会纳闷我们都已经有了一个赋值操作符 = 了,为什么还需要一个赋值操作符呢??那是因为这样会使得代码更加简洁,写的代码能够更加方便,下面小编用代码给大家展示两种写法的不同差异:

int num = 30;
num = num + 7;
num = num - 6;
int num = 30;
num += 7;
num -= 6;

        第二个代码块中的代码就使用了赋值操作符进行书写,下面小编为大家列出C语言的赋值操作符有哪些:

+=    -=

*=    /=    %=

>>=   <<=

&=    |=    ^=

        += -= 我们刚刚已经讲解过了,第二行的就是乘、除、取模的情况,因为第三行和第四行的操作符需要读者们有一些计算机组成原理的知识,小编在操作符进阶的章节会为大家深入讲解;在操作符进阶的章节小编也会为大家讲解一些需要用到的计算机组成原理的知识,敬请期待。

3. 单目操作符

        我们之前说到了双目操作符有两个操作数,C语言中还有一些操作符只有一个操作数,它们被称为单目操作符。

3.1 ++ --

        ++ 是一种可以让变量进行自增的操作符,其分为前置++后置++,-- 是一种可以让变量进行自减的操作符,也分为前置--后置--,下面小编还是一样用代码对其使用方法进行说明,这样通俗易懂。

3.1.1 前置++

int a = 10;
int b = ++a;
printf("a=%d b=%d\n", a, b);
前置++用例执行结果

        ++的操作数是a,是放在a的前面的,就是前置++,请各位读者记住一句运算口诀,前置++:先+1后使用a原来是10,先+1,后a变成了11,再使用就是赋值给bb得到的也是11,所以计算结束后,ab都是11

3.1.2 后置++

int a = 10;
int b = a++;//与上一段代码不一样的是,后置++的++在a之后
printf("a=%d b=%d\n", a, b);
后置++用例执行结果

         ++的操作数是a,是放在a的后面的,就是后置++;后置++:先使用后+1a原来是10,先使用,就是先赋值给b,b得到了10,然后再+1,然后a变成了11,所以计算结束后a是11,b是10。

3.1.3 前置 --

        如果读者们听懂了前面的前置++,那前置--也是一个道理,只是将+1换成了-1;计算口诀是先-1,后使用。下面附上代码说明:

int a = 10;
int b = --a;
printf("a=%d b=%d\n", a, b);
前置--用例执行结果

3.1.4 后置--

        置--也是一个道理,只是将+1换成了-1;计算口诀是先使用,后-1。下面附上代码说明:

int a = 10;
int b = a--;
printf("a=%d b=%d\n", a, b);
后置--用例执行结果

 3.2 + 和 -

        与算数操作符的 - 不同的是,单目操作符中的 + 是正号,- 是负号,这里强调一下,运算符 + 对正负值没有影响,是一个可以完全省略的运算符,但是要写上去也没毛病。

int num = +55;
int num = 55;

        这段代码中将+55或者55赋给整型变量num,结果是没有差别的。

        而运算符 - 用来改变一个数值的正负号,在正数的前面加上一个 - 就会得到一个负数,在负数的前面加上一个 - 就会得到正数。

#include <stdio.h>
int main()
{
	int num1 = 20;
	int b1 = -num1;
	int c1 = -20;
	printf("b = %d c = %d \n", b1, c1);
	int num2 = -20;
	int b2 = -num2;
	printf("b = %d \n", b2);
	return 0;
}
上述代码执行结果

        这个用例的执行结果也说明了,在正数的前面加上一个 - 就会得到一个负数,在负数的前面加上一个 - 就会得到正数。

4.结语

        说到这里,也许有很多读者从这篇文章中获取了很多的知识,小编在这里想送给各位读者一句话:把努力当成一种习惯,而不是三分钟热度。坚持才是王道,每一个你羡慕的收获,都是别人努力用心拼来的。你可以抱怨,也可以无视,但记住,不努力,连输的资格都没有!

转载自CSDN-专业IT技术社区

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/weixin_67910574/article/details/143463836

评论

赞0

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--