【C语言】运算符,强制类型转换

算术运算符

写代码嘛,肯定少不了计算,C中也提供了很多运算符,其中有一组就是这篇要介绍的算术运算符

运算符也叫操作符,都是一样的,翻译不同而已

算术运算符分别是+,-,* ,\ ,% ,都是双目运算符。

双目运算符

+和-

顾名思义,用来算加减法的运算符,它们都是有两个操作数的,位于操作符两端的就是它们的操作数,这种运算符就是双目运算符

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{	
	int a = 50; 
	int b = 60;
	printf("%d+%d=%d",a,b,a+b);
	return 0;
}
输出结果:50+60=110

*

用法和上面一样,表示乘法而已,就不再赘述了。

/

符号两端都是整数的话,执行整数除法,也就是求商,结果也是整数

include <stdio.h>
int main()
{
 float x = 6 / 4;
 int y = 6 / 4;
 printf("%f\n", x); // 输出 1.000000
 printf("%d\n", y); // 输出 1
 return 0;
}

上面示例中,尽管变量 x 的类型是 float (浮点数),但是 6 / 4 得到的结果是 1.0 ,⽽不是
1.5 。原因就在于 C 语言里面的整数除法是整除,只会返回整数部分,丢弃小数部分。

如果希望得到浮点数的结果,两个运算数必须至少有一个浮点数,这时 C 语言就会进行浮点数除法

#include <stdio.h>
int main()
{
 float x = 6.0 / 4; // 或者写成 6 / 4.0
 printf("%f\n", x); // 输出 1.500000
 return 0;
}

%

上面是取商,这个是取余,但要注意的是,这个运算符只能用于整数,不适用于浮点数。

#include <stdio.h>
int main()
{
 int x = 6 % 4; //2
 return 0;
}

对于负数求模,结果的正负号由第⼀个运算数的正负号决定。

#include <stdio.h>
int main()
{
 printf("%d\n", 11 % -5); // 1
 printf("%d\n",-11 % -5); // -1
 printf("%d\n",-11 % 5); // -1
 return 0;
}

=

赋值运算符,不是平时数学中的等于号,是⼀个随时可以给变量赋值的操作符。
在变量创建的时候给⼀个初始值叫初始化,在变量创建好后,再给⼀个值,这叫赋值。

int a = 100;//初始化
a = 200;//赋值,这⾥使⽤的就是赋值操作符

也支持连续赋值,从右向左依次赋值的。但是并不推荐,不便于理解,更不便于调试,万一出错不好找。

复合赋值符

在写代码时,我们经常可能对⼀个数进行自增、自减的操作
复合运算符帮我们化简了这一步

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{	
	int a = 50; 
	a = a + 1;
	printf("%d\n",a);
	a += 1;
	printf("%d", a);
	return 0;
}
结果为51
     52
//可见a+=1 等于a=a+1

下面的同理

+= -=
*= /= %=
//下⾯的操作符暂时不讲
>>= <<=
&= |= ^=

单目操作符

++--+()-()

++--是自增和自减的操作符,分为前置和后置
前置

int a = 10;
int b = ++a;//++的操作数是a,是放在a的前⾯的,就是前置++ 
//等于 a+=1; b=a;
printf("a=%d b=%d\n",a , b); //a=11 b=11

计算⼝诀:先+1,后使用;
自减同理

后置

int a = 10;
int b = a++;//++的操作数是a,是放在a的后⾯的,就是后置++
//等于 b=a;a+=1;
printf("a=%d b=%d\n",a , b);

计算⼝诀:先使用,后+1;
自减同理

+和-

这里的+是正号,-是负号,都是单目操作符
+对正负没影响,可以完全忽略它。

int a=10 等于 int a=+10

-改变值的正负号,负数的前⾯加上 - 就会得到正数,正数的前面加上 - 会得到负数。

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{	
	int a = -50,b=99; 
	printf("%d %d", -a,-b);
	return 0;
}//50  -99

强制类型转换

在要转换的数据前面加括号,里面写要转换的类型就行

int a = 3.14;
//a的是int类型, 3.14是double类型,两边的类型不⼀致,编译器会报警告
 int a = (int)3.14;//意思是将3.14强制类型转换为int类型,这种强制类型转换只取整数部分

强制类型转换都是万不得已的时候使⽤,能不用尽量不用。

———————————————————————————————————————————
希望对你有所帮助~
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值