C语言-----运算符、优先级 、类型转换

  • 1 运算符

  • 1.1算数运算符

运算符

名称
+加号运算符(双目)且正号运算符(单目)
 -减号运算符(双目)且符号运算符(单目)
乘号运算符(双目)
除号运算符(双目)
求余运算符(双目)    例:5%2=1
++自增运算符(单目)    例:2++   得到3
--自减运算符(单目)    例:2--      得到1
  • 1.2关系运算符

运算符名称
==等号运算符(双目)  实例:A=1,B=1;A ==B;   返回一个真值。
!=不等于运算符(双目)
>大于运算符(双目) 
<小于运算符(双目) 
>=大于等于运算符(双目) 
<=小于等于运算符(双目)
  • 1.3逻辑运算符

运算符名称
&&逻辑与运算(双目)  都真才真
||逻辑或运算(双目)  都假才假
!逻辑非运算(单目)  假为真,真为假。
  • 1.4位运算符

运算符描述
&   (双目)and 将其存在于两个操作数的二进制位复制到其结果。
|   (双目)or   将其存在于任意一个操作数的二进制位复制到其结果。
^  (双目)将其存在其中一个操作数但不同时存在两个操作数的二进制复制到其结果。
~  (单目)反转运算符,及把其二进制0变成1、1变成0。
<< (单目)二进制左移运算符。
>>  (单目)二进制右移运算符。

实例:

假设如果 A = 60,且 B = 13,现在以二进制格式表示,它们如下所示:

A = 0011 1100

B = 0000 1101

-----------------

A&B = 0000 1100

A|B = 0011 1101

A^B = 0011 0001

~A  = 1100 0011

  • 1.5赋值运算符

运算符描述
=赋值运算符        实例:A = 1;   B = A +2;
+=加且赋值运算符  实例:C +=A 相当于 C = C + A
-=减且赋值运算符
*=乘且赋值运算符
/=除且赋值运算符
%=求模且赋值运算符
<<=左移且赋值运算符
>>=右移且赋值运算符
&=按位与或且赋值运算符
^=按位异或且赋值运算符
|=按位或且赋值运算符
  • 1.6其他运算符

运算符描述
sizeof()返回变量大小。
&返回变量地址。
*指向一个变量。
?:条件表达式。
  • 1.7左值(lvalue)与右值(rvalue)

    变量为右值时,编译器只是取变量的值,左值标志了一个特定的位置来存储结果。

    注意:左值同时还要满足可以改变。

  • 2 优先级

#注意:后缀运算符有个特性,循环时会在下条语句才生效。

  • 3 类型转换

  • 3.1默认转换

当两个数据类型不同进行算数运算时,会默认把存储空间小的数据类型转换成存储空间大的数据类型。

作用:为了更加精确数据类型。

实例:
 

#include <stdio.h>

int main()
{
      printf("整型输出:%d\n', 1 + 2.0);
      printf("浮点型输出:%f\n", 1 + 2.0);
}
/*
输出结果:
整型输出:0           //错?  原因输出结果为浮点型,却强制输出为整型错。
浮点型输出:3.0
*/
  • 3.2强制类型转换

(A)B、把B的数据类型强制转换为A类型。
实例:

#include <stdio.h>

int main ()
{
      printf("整型输出A:%d\n", 1 + (int)2.0):      //强制转换
      printf("浮点型输出:%f\n", 1 + 2.0);
      printf("整型输出B:%d\n", 1 + (int)1.8);     //输出损失精度
}
/*
输出结果:
整型输出A:3
浮点型输出:3.0
整型输出B:2
*/
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值