
C语言学习笔记——类型转换与运算符的优先级
一、类型转换
自动类型转换:在程序运行的时候,低精度的数据会自动向高精度的数据进行这类型转换,数据的进度不会丢失
强制类型转换:有时候在我们运算的过程中,需要对数据进行短暂的类型转换,去进行运算,让数据更加精确
- 自动类型转换:
- 一般为 低精度 向 高精度 转换
- (可按字节大小顺序记,有低精度到高精度的数据类型)
- char - short - int - long - float -double .....
- 强制类型转换:
- 常应用于:指针,因为指针的类型不管如何转换,它的精度都是不会丢失的。
- 当用于 高精度 向 低精度 强制转换时, 数据会丢失!
- 如:float a = 3.14; (int) a -> a = 3 , 数据丢失!
- 判断输出类型的方法:
- 若为 同精度 运算,则输出仍为同精度(强制转换除外)。如: int/int -> int
- 若为 不同精度 计算,则输出为更高的进度(强制转换除外)。如: int/float -> float
例:
自动类型转换 与 强制类型转换的 代码 与 输出结果 如图所示:
#include<stdio.h> void main() { //自动类型转换: printf("100/3 = %d\\n", 100/3); printf("100/3.0 = %f\\n", 100/3.0); //强制类型转换: printf("(float)100/3 = %f\\n", (float)100/3); printf("(float)(100/3) = %f\\n", (float)(100/3)); } 二、运算符优先级运算符的一般优先级:
由高到低:算术运算符 -> 关系运算符 -> 逻辑运算符 ->赋值运算符
注:sizeof 为长度运算符。
附上运算符优先级表:
👁️ 阅读量:0
© 版权声明:本文《C语言学习笔记——类型转换与运算符的优先级》内容均为本站精心整理或网友自愿分享,如需转载请注明原文出处:https://www.zastudy.cn/wen/1686628267a309798.html。