写在前面
- 面向初学者撰写专栏,个人原创的学习C/C++笔记(干货)
- 所作源代码输出内容为中文,便于理解
- 如有错误之处请各位读者指正
- 请读者评论回复、参与投票,反馈给作者,我会获得持续更新笔记干货的动力。
致粉丝:可以在阅读完我的文章后,自己尝试写一点原创心得(哪怕一行字也好)。
创新互联建站是一家专注于做网站、网站建设与策划设计,桐乡网站建设哪家好?创新互联建站做网站,专注于网站建设10多年,网设计领域的专业建站公司;建站业务涵盖:桐乡等地区。桐乡做网站价格咨询:028-86922220
希望众(尽管400个🤣)粉丝多多支持、浏览、自我创作@_@
知识点概览一.为什么进行类型转换 1.C++数值类型丰富写在前面
知识点概览
一.为什么进行类型转换
1.C++数值类型丰富
2.计算机需要处理特殊类型情况
二.类型转换的一些基本规则
1.初始化数值与赋值时进行转换
2.表达式内的类型转换
3.类型级别塔(高到低):
4.(C++11新特性)以花括号{}方式初始化进行转换
5.传递函数参数时的类型转换
6.强制类型转换
结语
long l_Big = 300;
short s_small = l_Big;
如上面的例子
类型转换 | 示例 | 可能出现的问题 |
较大整型-->较小整型 | long转short | 原较大值超过小类型取值范围 |
浮点类型-->整型 | double转int | 原小数部分被丢弃,也可能超过后者的取值范围 |
较大浮点型-->较小浮点型 | double转float | 精度降低(有效数位减少),或超出后者取值范围 |
注意:浮点类型转换为整型时,直接丢弃小数部分,而不是四舍五入保留整数部分
2.表达式内的类型转换注意:bool类型变量,只有数值0赋给bool类型会转换为false(假),其他任意类型非零数值都会转换成true(真)。
1.整型提升:
2.两种或多种类型混合时,多采取“小类型转换为大类型”。
3.校验表(C++11标准):
3.类型级别塔(高到低):
- 如一个操作数类型是long double,则将另一个操作数转换为long double
- 否则,如一个操作数类型是double,则将另一个操作数转换为double
- 否则,如一个操作数类型是double,则将另一个操作数转换为double
- 否则,两个操作数都不是浮点数,都将会执行整型提升
- 此情况下若两个操作数都是有或无符号的类型,低级别操作数转高级别类型
- 操作数中一个有符号类型,另一个无符号类型且级别较高,则有符号类型转为该无符号类型
- 否则,若有符号类型可以表示无符号类型所有取值,则将无符号操作数转为有符号所属类型
- 否则,将两个操作数都转为有符号类型的无符号版本
有符号整型类 | 其他类型 |
(注:无符号整型类同有符号整型类) | (空) |
long long | (空) |
long | (空) |
int | (空) |
short | (空) |
signed char | char,signed char,unsigned char同级 |
(空) | wchar_t,char16_t,char_32_t与其底层类型相同 |
(空) | bool最低 |
1.也称作列表初始化,常用于给复杂数据类型提供值列表,要求更严格,不允许缩窄,可能不能用小类型表示大类型数值,且不允许将浮点型转换为整型。
2.只要类型长度足够,就可以进行初始化类型转换
5.传递函数参数时的类型转换(括号里放类型名)变量名或数值//方法一
变量名或数值(括号里放类型名)//方法二
static——cast<类型名>(变量或数值)
今天我们共同学习了:C++类型转换的原因与基本规则,涉及初始化数值/表达式内的/列表初始化的/传递参数时的/强制类型转换,以及数值级别塔 等重要知识。
学编程是一条漫长的路,贵在坚持。每天学习来提升自己的的编程能力,成为耀眼的IT之星。
各位读者跟随我的脚步,我们共同努力,共同进步吧!
返回作者主页
专栏下一篇文档:学习C++基本数值类型
其它文章:C++学习/温习笔记:源码学编程(一)(优秀博文)
C语言求幂运算(尽大支持)——中文式奇特命名
简洁易懂地介绍C++参数
C/C++基础运算符
如有探讨问题联系邮箱:yhlz0613@163.com
对于文章中的错误请各位批评指正,我一定及时更正
请在投票后评论回复意见,如有关于写博文的指导也请您回复提出
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧