您的位置:首页 > 其它

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

2015-07-15 20:59 141 查看
注:本文做为自我复习反省所用,若各位大神察觉偶哪里有理解错误的地方,恳请斧正!在此衷心感谢各位大神!

​一: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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c