C之运算符与强制类型转换

注:本文做为自我复习反省所用,若各位大神察觉偶哪里有理解错误的地方,恳请斧正!在此衷心感谢各位大神!
​一:C运算符共分为:单目/双目/三目

​ 单目:运算量只有一个的运算符; +(正), -(负), ++(自加),--(自减),~(取反),!(非),×(取指向),&(取地址)

​双目:运算量只有两个的运算符;
​        1,算数运算类:  +(加), -(减) ,*(乘) , /(除), %(取余),
​        2,位运算类:|(或) , &(与), ^(异或),<<(左移),>>(右移),
​        3,逻辑运算类:&&(逻辑与),||(逻辑或),
​        4,关系运算类:<(小于),>(大于), >=(大于等于),<=(小于等于),!=(不等于),==(全等于),
​        5,赋值类: =(等于),+=(加等),-=(减等),*=(乘等),/=(除等);

​三目:运算量有三个的运算符;? : (问号运算符)

​        运算优先级:三目 < 双目 < 单目
​         貌似有个口诀为:非           算          关         与             或             赋             逗
​                               !    算数运算  关系运算  &&           ||          赋值运算     ,
​注:写代码时也可用括号来解决,先后顺序的忧伤   —____ —||

​位运算
​example:
​ int a = 0x00f0,b;
​取反:
b = ~a;    ​// b的值为0xff0f
​左移:
​b = a<<4;     //b的值为0xf0f0
​右移:
​b = a>>4;    //b的值为0x0ff0
​位与:
​b = a & 0xffff;     //b的值为0xff0f
​位或:
​b = a | 0xffff;     //b的值为0xffff
​异或:
​b = a ^ 0x0ff0    //b的值为0x0f00

​自加自减
​example:
​int i,j;
​    j + i++ ; //i先参与运算后自加 ,自减同理

​    ++j +i;//j先自加然后才参与运算,自减同理

   j+++i;//j先参与运算后自加 ,自减同理


​赋值运算
​example:
​int a,b ,c;
​ a = 9;      // 赋值运算符的左边必须是变量切不能为表达式
​ a += 4;
​/***********************************************/
​a = b = c+5;     //b不能为常量或表达式

​三目运算: 
​example:
​a ?  b : c;    //如果a的值为真,则表达式的值为b,否则表达式的值为c



​逗号表达式
​example:
​    int a,b,c;
​    (a = 3, b = 5, c = 8) //该表达式的结果为 8
逗号表达式的结果都取最后一个多好后面的表达式的结果;​

​二:强制类型转换
​C语言中强制类型转换分为:显式转换与隐式转换

​隐式转换:不同的数据类型进行运算时,计算机编译器会自动帮我们转换类型

example:

float a = 3.14;

int b = 4, c = 9;

b+c 的结果为int型

a+b的结果为float型,编译器会自动隐式的转换数据类型

数据类型转换表:

unsigned char

^

|

char->short->int->long->float->double

1:不同字节情况下 占字节数少的 向占字节数多的转化

2:同字节数的有符号向无符号的转换

3:整型向浮点型转换


显式类型转换:

int a = 8;

char b;

b = (char)b;

/**************************************************/

3/2  其结果为1  因为整型之间只有整除

3.0/2 其结果为1.5   因为2会隐式转换为float型参与运算

(float)3/2 其结果为1.5   因为先将3强制转换为float后,2也会隐式转换为float型参与运算

(float)(3/2)其结果为1.000000 该句为将3/2的结果强制转换为float


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值