当前位置: 首页 > news >正文

C语言Day9:C语言类型转换规则

        各位亲爱的读者,大家好!今天博主给大家带来的内容是C语言中的数据类型转换规则

一.自动类型转换

        当程序中有不同的数据类型参与运算后,系统首先会按照一定规则尝试对运算数进行临时类型的转换。规则如下:

(1)当float类型参与运算时,必定先转换为double类型;

(2)当char、short、unsigned char、unsigned short类型数据参与运算时,必定先转换为int类型;

(3)当int、unsigned、long、double类型参与运算的时,不必统一到最高级的double类型,只需要统一转换到两个数据中优先级高的那个类型即可。例如int和unsigned类型数据运算,仅需要统一转换为unsigned类型即可

注意:在运算过程中,变量本身的类型不会发生改变的,改变的只是变量中存储的值,且变量值类型的改变也仅是在计算过程中被临时改变而已。

二.赋值类型转换

        一般情况下,C语言赋值语句要求赋值号两端数据的类型保持一致,但在实际运用中存在赋值号左右两边类型不一致的情况,此时需要按照赋值类型转换规则进行类型转换,具体转换规则如下:

(1)小类型数据(所占空间较小的类型)存入大类型变量时直接转换即可,如int类型数据存入float,double等大类型变量时,直接将整数转为实数存入即可

(2)将float,double类型变量存入整数类型变量时,只要整数部分不超过int类型表示范围,直接舍弃小数部分(不考虑四舍五入)存入即可

(3)char类型存入int类型时,因为char只占据一个字节,而整型变量一般占据2或4个字节,所以此时char类型数据存入整型变量最低的那个字节中,整数变量剩余高字节部分自动补0处理

(4)double类型存入float类型时,只要没有超过float类型的表示范围,可以直接转换为float后存入,如果超过了,则会损失精度

(5)short类型存入int或long类型变量时,要进行符号拓展

(6)将unsigned类型整型数据存入int或long整型变量时,不存在符号扩展,只需要将高16个二进制位补0即可。

三.强制类型转换

        在实际编程中,有时需要将一个对象的数据类型转换为需要的目标类型,此时可以使用强制转换方法,语法格式如下:

(目标类型)(常量|变量|表达式) 

        例如:(double)a+(double)(b+c);

        解释:将a变量的值临时转换为double类型,同时将b+c的结果也强制转换为double类型,最后两者相加。

注意:C语言强制类型转换只是临时的将变量的值或常量值转换为目标类型,整个计算过程中变量本身的类型始终是不变的。

四.今日总结

        在今天的学习中,博主给大家带来了C语言中的类型转换规则,在明天的学习中,博主将会给大家带来printf格式化输出函数的相关内容,在这里感谢大家的关注与支持!欢迎在评论区分享属于你的看法与见解,博主看到后会第一时间回复!

http://www.xdnf.cn/news/701335.html

相关文章:

  • Linux Crash工具全解:内核崩溃分析的一切
  • shell脚本总结11
  • 华为OD机试真题——矩形绘制(2025A卷:200分)Java/python/JavaScript/C/C++/GO最佳实现
  • 数据库表与实体类设计
  • 中望CAD与AutoCAD的SWOT对比分析(基于2025线上发布会观察与行业数据)
  • 阿里云云效对接SDK获取流水线制品
  • C++模板语法大全
  • Rust 的Hello World
  • 在qt中使用c++实现与Twincat3 PLC变量通信
  • 知行之桥如何将消息推送到钉钉群?
  • 前端面经 hook 获取dom元素
  • Cookie与Session简介-笔记
  • 代谢测定试剂盒_生化制剂_Sigma-Aldrich®实验室用品及生产材料
  • FastApi学习
  • AMBA-AHB的控制信号
  • jenkins部署slave动态节点
  • java 开发中 nps的内网穿透 再git 远程访问 以及第三放支付接口本地调试中的作用
  • 使用 find 遍历软链接目录时,为什么必须加 -L
  • 华为OD最新机试真题-按单词下标区间翻转文章内容-OD统一考试(B卷)
  • 【案例95】“小”问题引发的“大”发现---记一次环境修复
  • 十六进制数据转换为对应的字符串
  • Python 如何让自动驾驶的“眼睛”和“大脑”真正融合?——传感器数据融合的关键技术解析
  • Java+POI+EXCEL导出柱形图(多列和单列柱形图)
  • 外骨骼驾驶舱HOMIE——3500元让人形机器人1:1复刻人类动作:类似Mobile ALOHA主从臂的主从分离版
  • 深度学习入门:从零搭建你的第一个神经网络
  • Vue3对接deepseek实现ai对话
  • 系统性学习C语言-第十讲-操作符详讲
  • javascript中运算符的优先级
  • 如何把示例数据0.617、0.229、0.174保留两位小数,并在后面添加%处理,处理后的结果如下:61.7%、22.9%、17.4%
  • Java | 韩顺平 循序渐进学Java自用笔记---OOP高级(二)