vlambda博客
学习文章列表

必须知道的C语言知识细节:数据类型转换

「今天是学习C语言第 86 天」


当你选择了一种语言,意味着你还选择了一组技术、一个社区。——Joshua Bloch

# 数据类型转换

C语言表达式计算中,如果变量的数据类型相同,则按照运算符的优先级和结合性完成计算,表达式的值类型和变量的数据类型相同。


如果表达式计算中,变量的数据类型不相同,则需要进行数据类型转换方可进行表达式计算,表达式值类型和转换后的数据类型相同。


C数据类型转换有两种:自动转换和强制转换


# 自动转换

- 基本数据类型(整型和浮点型)支持自动转换

- 原则上转换是按照数据类型长度和范围较小的类型向较大的类型自动转换。


具体规则如下:

1.短整型向长整型自动转换

  char -> short int -> int -> long int 


2.有符号整型向无符号整型转换

  ..int -> ..unsigned int


3.单精度向双精度浮点型转换

  float -> double


4.整型向浮点型转换

  int -> double


5.赋值规则:

  浮点型赋值给整型变量,浮点数小数被舍去

  整数赋值给浮点型变量,数值保持不变,浮点数小数部分为0


# 强制转换

强制类型运算符() 实现转换,语法如下:

(类型说明符)(表达式)

例如:

(int)3.14 将浮点数3.14转为整数,值为3。

(int *)0x0000ffff 将整数强制转换指针类型。


当长度较长的或值较大的类型转为较短的类型时,值将根据需要进行舍入;

整数类型和浮点类型可以相互转换;

整数类型和指针类型可以强制转换。


---------- End ----------


往期精彩推荐:




「喜欢C请赏个 赞    点击右下角 在看」