c语言强制转换和自动转换实例
时间: 2024-10-17 10:09:43 浏览: 38
C语言数据类型转换.ppt
在C语言中,数据类型的转换分为强制转换(Explicit Conversions)和隐式转换(Implicit Conversions),也称为自转型。
**1. 自动转换(隐式转换,Automatic Conversion)**:
这是指不需要程序员明确指定的数据类型之间的转换,通常是从较小的数据类型到较大的或兼容的数据类型。例如:
```c
int a = 5; // 整型变量
float b = a; // 自动将整数赋值给浮点型,因为整数可以被隐含地转换为浮点数
```
在这种情况下,`a`的值会被隐式提升为`b`的精度。
**2. 强制转换(显式转换,Explicit Conversions)**:
当需要从一种类型转换成另一种不兼容类型时,就需要显式地使用特定的转换运算符,如`(type)expression`。例如:
```c
char ch = 'A'; // 字符型
int num = (int)ch; // 将字符转换为整数,因为字符实际上代表了一个ASCII码,需要显式转换
```
或者当一个值无法直接存储在目标类型时,如将`short`转换为`long`:
```c
short s = 32768; // 超出了short的最大范围
long l = (long)s; // 显式转换,将s转换为long类型以避免溢出
```
阅读全文