C语言数据类型(1)——基本数据类型及转换

引言
用计算机解决实际问题时,程序处理的主要对象是数据,对不同的问题而言,涉及的数据类型也是多种多样的,即可能包括用数字表示的数值型数据,也可能包括用字符表示的非数值型数据。不同的数据类型在计算机中存储的形式是不同的,系统对他们进行的操作也不相同。为满足系统对各种数据类型数据操作的需要,C语言提供了很多种数据类型的定义,要求C语言中使用的每一个数据都必须定义类型,系统相应的为数据分配存储空间,并确定数据所能进行的运算。
C语言中数据类型可分为基本数据类型、构造数据类型、指针三大类。
在这里插入图片描述
本文仅介绍基本数据类型,其余两种类型后续会再说明。

基本数据类型

C语言的基本数据类型包括整型、字符型、实型(浮点型)、空类型。各数据类型说明符如所示。
在这里插入图片描述
除了类型说明符外,还有一些数据类型修饰符,用来扩充基本类型的意义,以便更准确地适应各种情况的需要。修饰符有long(长型)、short(短型)、signed(有符号)和unsigned(无符号)。这些修饰符与基本数据类型的类型说明符组合,可以表达不同的数值范围,以及数据所占内存空间的大小。
在这里插入图片描述

printf()函数输出格式

在这里插入图片描述

在%和格式符之间可以使用附加格式说明符,附加格式说明符主要用来指定输出数据的宽度和输出形式。
在这里插入图片描述

例如:%ld —— 输出十进制长整型数 
			%m.nf —— 右对齐,m位域宽,n位小数或n个字符
			%-m.nf —— 左对齐  

数据类型转换:

C语言中不同类型的量可以进行混合运算,而当参与同一表达式的各个量具有不同类型时,在计算过程中要进行类型转换。转换的方式有两种,一种是自动类转换,一种是强制类型转换。
自动类型转换就是当同一表达式中运算的各个量具有不同的类型时,编译程序会自动将它们转换成同一类型的量然后再进行运算。
自动转换原则自动将精度低、表示范围小的运算对象向高精度、表示范围大的运算对象类型转换,以便完成较高精度的运算结果,然后再按同类型的量进行计算。
在这里插入图片描述

赋值运算中的类型转换:
<实型变量>=<整型表达式>
小数部分自动补零
<整型变量>=<实型表达式>
自动舍去实型表达式的小数部分(不进行四舍五入)
<字符型变量>=<整型表达式>
<整型变量>=<长整型表达式>
自动截取表达式的低字节赋值,舍去高字节
<整型变量>=<字符数据>
<长整型变量>=<整型表达式>
自动给高字节补0或补1

强制转换可以在表达式中通过强制转换运算符对操作对象进行强制转换,其功能是把表达式的运算结果强制转换成类似说明符所表达的类型。

 一般形式:(数据类型说明符)(表达式)

例如: (int)( ‘b’+3x)%3
1/(float)a+6
注意:(float) 22/5 与 (float) (22/5) 不同

错误的类型转换:
(int) b=a+5
b= int (3a)

总结

C语言提供了多种的数据类型供使用者使用,不同的类型用于不同的运算目的,各种数据类型在提供了便利以外也带来了一些麻烦。所以我们在进行编程时要选择正确的数据类型,若选用不正确将会使程序编译出错、运行结果不正确或一些其他的问题。故在编程中重要的一步就是选择正确的数据类型,这点很重要。

猜你喜欢

转载自blog.csdn.net/Tao_9/article/details/129668332