自己总结了一些,看了网课,《Cprimerplus》,和做题总结的,有问题请帮忙指出(期待)
1.自动类型转换(隐式转换)
附概念1.类型长度
常用:char<unsinged char<short<unsigned short<int <unsinged int<long<unsinged long<float<double (unsinged为无符号类型整形前缀,浮点数是不能用 unsigned来规范的,unsigned 把内存中的数据第一位(0,1原来表示正负)用来表示数据,不用于表示符号位。而浮点数规定内存中数据的第一位必须是符号位)
(1)运算:不管是变量还是常量 运算中运算符号两边类型长度低于Int,均临时转换为Int计算,有高于Int的统一临时转换为高的运算(计算注意:两整数相除结果为舍弃小数部分的整数值。解决方法·为10/1.0/4或者 强制类型转换(double)10/4);
(2)赋值:运算结果如果与赋值变量不同,计算机尝试转换为变量类型,与scanf和printf中转换说明如%.2f不同的是,此为截取相应数据而不是四舍五入保留位
(3)输入printf:printf中有自动类型提升,小于Int的数据转Int但不同的是小于double的浮点类型自动转为double,因此,%lf和%f在printf中都可表示提取double类型数据(l别大写大写Lf表示long double),即float和double数据都能用%f表示
2.强制类型转换(显式转换)
(1)作用为不同类型间数据转换,计算机可能截取数据以达到目标类型;
(2)格式:“(目标类型)变量/常量” 注意目标类型要加括号以区分
例子:1.(1)处。2.有些函数返回值为double如pow(a,b)如果要让他返回值变为数组下标整形可为:(int)pow(a,b)(a为底数,b为指数)
如果要刷简单的转换题可以去pta找基础题,