视频加载失败

C 语言强制类型转换

596 字
3 分钟
C 语言强制类型转换

【一】强制类型转换理解#

  • 目的:C语言的强制类型转换用于将一个数据类型转换为另一个数据类型,目的是为了让程序在编译和运行时能够正确地执行。
  • 转换方式:分为两种:
    • 显式的数据类型转换
    • 隐式的数据类型转换

【二】显式的数据类型转换#

  • 一般形式:(数据类型名称) <表达式>
  • 代码示例解析:
    int a=2, b=0 ;
    float c = 4.8, d= 3.3;
    b = (int) (a + c +d) ; // b存入右边表达式的计算 结果为10
    • 计算过程:a + c + d 的结果是 2 + 4.8 + 3.3 = 10.1(此时是浮点型 float)。
    • 通过 (int) 强制转换,10.1 被转换为整型 10,最后赋值给整型变量 b。

【三】隐式的数据类型转换#

  • 定义:类型转换可以是隐式的,由编译器自动执行。
  • 代码示例解析:
    int a=2, b=0 ;
    float c = 4.8, d= 3.3;
    b = a + c + d ; // b存入右边表达式的计算 结果为10
    • 计算过程:a + c + d 的结果依然是浮点型 10.1。
    • 但在赋值给整型变量 b 时,编译器会自动将 10.1(float)隐式转换为 10(int),然后存入 b。

这是关于C语言数据类型转换的进阶内容,主要讲解了整数提升(Integer Promotion)和常用算术转换的底层规则。这也是理解C语言表达式求值顺序和类型的核心。

结合你之前的学习脉络,我为你整理成结构化笔记,并补全了图片中未展示完整的部分:

【四】整数提升#

  • 概念:整数提升是指把小于 int 或 unsigned int 的整数类型(如 char、short、bool、位域等)转换为 int 或 unsigned int 的过程。
  • 常用算术转换:是隐式地把值强制转换为相同的类型。编译器在处理算术运算时,遵循以下两步:
    1. 首先执行整数提升(把小的整型提升为 int 或 unsigned int)。
    2. 如果操作数类型不同,则它们会被转换为下列层次中出现的最高层次的类型。
  • C语言标准规定的算术转换层次(从低到高)依次为: int -> unsigned int -> long -> unsigned long -> long long -> unsigned long long -> float -> double -> long double

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!

打赏
C 语言强制类型转换
https://firefly.cuteleaf.cn/posts/language/c/20c语言基础/50强制类型转换/
作者
Dream
发布于
2026-09-26
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
Dream
Hello, I'm Dream.
公告
欢迎来到我的博客!爱学习爱进步。
分类
标签
最新动态
站点统计
文章
11
分类
1
标签
26
总字数
23,674
运行时长
0 天
最后活动
0 天前
站点信息
构建平台
Vercel
博客版本
Firefly v6.16.8
文章许可
CC BY-NC-SA 4.0
文章目录