C语言从0到1(04)——运算符(01)

一、为什么要有运算符

在现实生活中有许多的运算,如:
计算利息会用到加减乘除;跟人比较身高,年龄会用到大于、小于、等于。
程序解决生活中的难题更是离不开运算。

二、什么是运算符

运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。

C 语言内置了丰富的运算符,并提供了以下类型的运算符:

  • 算术运算符:+(加)、-(减)、*(乘)、/(除)、%(取模)、++(自增)、–(自减)
  • 关系运算符:>(大于)、<(小于)、>=(大于等于)、<=(小于等于)、==(相等)、!=(不相等)。
  • 赋值运算符:=(赋值)。
  • 逻辑运算符:&&(逻辑与)、||(逻辑或)、!(取反)
  • 位运算符:&(与)、|(或)、^(异或)、>>、<<(位移)
三、算术运算符
  • +、-、* :连接两个操作数,把两个操作数进行对应的运算。
int a = 10;
int b = 20;
printf("%d+%d = %d\n", a, b, a+b);//+
printf("%d-%d = %d\n", a, b, a-b);//-
printf("%d*%d = %d\n", a, b, a*b);//*

输出结果:(结果同预期,证明小学已毕业)

10+20 = 30
10-20 = -10
10*20 = 200
  • / :连接两个操作数,把两个操作数进行除法的运算。
int a = 3;
int b = 10;
int c = 5;
printf("%d/%d = %d\n", b, c, b/c);
printf("%d/%d = %d\n", a, b, a/b);
printf("%d/%d = %d\n", b, a, b/a);

大家可以先想想输出结果,是否同你预期呢?

10/5 = 2
3/10 = 0
10/3 = 3

当有些事情与你原本根深蒂固的认知不同时,不要立判对错,有些事情没有对错,只是因素不同。

注意:两个整型运算,得到结果也为整型(会省略小数部分),因为浮点型数据与整型数据存储方式不同。

  • 如下对比:
int a = 3;
float b = 10;
int c = 5;
printf("%f/%d = %f\n", b, c, b/c);
printf("%d/%f = %f\n", a, b, a/b);
printf("%f/%d = %f\n", b, a, b/a);

输出结果:

10.000000/5 = 2.000000
3/10.000000 = 0.300000
10.000000/3 = 3.333333

整型与浮点型运算,结果得到浮点型。两个操作数进行运算,结果会自动转换成“较大”类型。

  • % :连接两个操作数,相除后取余数。
int a = 10;
int b = 3;
int c = 2;
printf("%d %% %d = %d\n", a, b, a%b);//注意 % 号的打印方式
printf("%d %% %d = %d\n", a, c, a%c);

输出结果:

10 % 3 = 1
10 % 2 = 0

注意:% 两个操作数均不能是浮点型。

  • 后缀 ++(自增)、–(自减):置于变量之后,使变量自增或自减1。
int a = 10;
int b = 10;
a++;
b--;
printf("%d, %d\n", a, b);

输出结果:

119

再来看个后缀自增自减的特殊之处:

int a = 10;
int b = 10;
printf("%d, %d\n", a++, b--);
printf("%d, %d\n", a, b);

输出结果:

1010
119 

WTF?

注意:后缀自增和自减运算是在语句结束后才会执行。
也就是在第一句打印时,a和b均未执行自增和自减;等第一句打印执行完后,才会执行自增自减;所以第二句打印的值是自增和自减之后的值。

  • 前缀++、–:置于一个变量之前,使其自增或自减1。
int a = 10;
int b = 10;
++a;
--b;
printf("%d, %d\n", a, b);

输出结果:

119

上述结果与后缀一至,再来看下述代码:

int a = 10;
int b = 10;
printf("%d, %d\n", ++a, --b);
printf("%d, %d\n", a, b);

输出结果:

119
119

前缀++、–,会使变量里面自增或自减1,而不是等到语句结束后再执行。

总结:算术运算符,在实际编程中使用频率很高,但是一般的应用开发中不会涉及很复杂的组合,相对来说都很简单。只要特别注意除、取模、后缀自增自减的特殊之处。
各位童鞋也可以自己多试试各运算符的组合使用,下一节将讲解“其他运算符”。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值