目录:
1.类型转换
1.1.隐式类型转换
1.2.强制转换
2.运算符
2.1 .算数运算符
2.2.赋值运算符
2.3.逗号运算符
3.不同类型数据混合赋值
本章将介绍下C的运算符
1、类型转换
1.1、隐式类型转换
在学习运算符之前,我们先要掌握隐式数据类型转化,因为在进行混合运算时要进行类型匹配才能进行计算。比如说int a=1,float b=1.2;执行a+b时要先把a转换为float类型的再进行运算。而将int转为float类型这类的从低精度自动转为高精度,称为隐式类型转换。隐式类型转换可以参考这个图。
1.2、强制转换
强制转换也算一种运算符、不会影响本身数据类型。
2、运算符
C语言识别进行运算时,采用贪心法进行识别。从左到右逐个扫描将字符尽可能多的结合成C语言运算符。运算符包含算数运算、赋值运算、逗号运算。需要从它们的优先级和结合性进行考虑。
2.1.算数运算
常见的运算符:"+"、"-","*","/","%","++","--"。在这里可以重点说下后面4个。
"/":除运算符、这个数学中分母不能为0,但是在C语言中却可以编译成功、但是在运行时会报错。
"%":这个取余运算符a%b,它取余值正负号取决于a、如图。
"++"与"--",要区分先用还是先加(减),a++(--)是先用值后在赋值、而(--)++a则是先加再赋值。++(--)a的效率高些,没有开辟新的临时空间。
2.2.赋值运算
赋值运算常见的赋值运算符有"="、"+="、" -="、" *="、" /="。
"+=":赋值运算符右侧的值加到左侧的变量上 , 然后将运算结果赋给左侧的变量。
"-=": 赋值运算符左侧的变量减去右侧的值 , 然后将运算结果赋给左侧的变量 。
"*=":赋值运算符左侧的变量乘以右侧的值 , 然后将运算结果赋给左侧的变量。
"/=":赋值运算符左侧的变量除以右侧的值 , 然后将运算结果赋给左侧的变量。
"%=":赋值运算符右侧的值对左侧的变量取余 , 然后将运算结果赋给左侧的变量。
2.3.逗号运算 ',':表达式1,表达式2,表达式3, ...,表达式n。表达式n为运算结果,但是表达式1~n都要执行一次。
3、不同类型数据混合赋值
高精度----->低精度会导致精度丢失问题(f1)。长类型----->短类型会导致高位截断(ua)。短类型----->要判断是否有符号。无符号补0;有符号根据短类型数据最高位是0还是1进行补(ub1,ub2)。如图