2024年5月12日发(作者:)
第2章 C语言的基本数据类型
本章要点
了解C语言的数据类型,掌握基本数据类型的应用及其相互转换规则,理解变量和常量的概念,并掌握
其定义及引用方法。本章的难点是数据在内存中的存储形式。
第一节 C语言的数据类型
由于信息的表现形式多种多样,处理的方法也不相同,所以,我们必须考虑用不同形式
的数据来表示不同的信息。例如:一个班级的人数要用整数来表示;班级学生的平均成绩要
用小数表示;学生的姓名、性别要用字符来表示;一个班级学生某一门课程的成绩要用一组
不同的数值来表示等。
计算机语言中的数据类型就是为了能够高效处理各种不同的数据而引进的一个概念,是指
数据的内在表现形式。不同的数据类型具有不同的取值范围和不同的操作。C语言提供的数据
类型如图2-1所示。
整型(int)
单精度型(float)
基本类型实型(浮点型)
双精度型(double)
字符型(char)
枚举类型(enum)
数组类型
)
构造类型
结构体类型(struct
共用体类型(union)
指针类型
空类型(void)
图21C语言的数据类型
在程序中使用的所有数据都必须指定它的数据类型,C语言的数据类型由基本类型和非基
本类型组成。其中,基本数据类型是其他数据类型的基础。
C语言中的基本数据类型包括整型、实型(浮点型)、字符型,其中实型又包括单精度和
双精度两种类型。本章主要讨论这4种基本类型。
整型、单精度型、双精度型和字符型数据定义的关键字分别为:int、float、double和char。
除了这四个关键字外,C语言中还提供了一些数据类型的修饰符,如:long、short、signed和
unsigned。它们的作用是与基本类型的定义关键字结合起来使用,以对基本类型进行扩充,使
得在程序编写的过程中可以灵活调整数值的范围以及所占用的存储空间。结合修饰符的应用,
基本数据类型可进一步划分,如表2-1所示。
表2-1 各种数据类型及其说明
1
定义关键字
[signed] int
unsigned [int]
[signed] short [int]
整型
说明 占用字节数
4
4
2
2
4
4
4
8
8
1
1
1
取值范围
-2
31
~ (2
31
-1)
0 ~ (2
32
-1)
-32768(-2
15
)~32767(2
15
-1)
0 ~ 65535(2
16
-1)
-2
31
~ (2
31
-1)
0 ~ (2
32
-1)
-3.4×10
-38
~ 3.4×10
38
-1.7×10
-308
~ 1.7×10
308
-1.7×10
-308
~ 1.7×10
308
-128 ~ 127
0 ~ 255
-128 ~ 127
无符号整型
短整型
无符号短整型
长整形
无符号长整形
单精度型
双精度型
长双精度型
字符型
无符号字符型
有符号字符型
整型
unsigned short [int]
[signed] long [int]
unsigned long [int]
float
浮点型
double
long double
char
字符型
unsigned char
signed char
说明:
(1)表中方括号内的部分是可以省略不写的。例如:unsigned short int与unsigned short
是等价的。
(2)C标准并没有规定各种数据类型必须占用多少字节,通常只要求int型的长度应大于
或等于short型,且应小于或等于long型。对于具体占用的字节数,不同的编译系统确定的长
度也不相同。表2-1中各数据类型占用字节数以Visual C++ 6.0编译系统为例。
(3)实型数float和double总是有符号的,不能用unsigned来修饰。因此unsigned和signed
只能修饰char和int,一般情况下,char和int默认为signed型。
(4)short只能修饰int,long只能修饰int和double。
(5)除了上表所列基本数据类型以外,在C99中,还增加了双长整型(long long int)和
布尔型(bool)两种整型数据类型。
关于各种数据类型占用的字节数,在C语言中提供了一个长度运算符“sizeof”,该运算符
可用来测定指定数据类型在当前编译系统中所占用的字节数。当我们需要了解某个编译系统
中某种数据类型的宽度时,可以使用这个运算符进行测试。
其格式为:sizeof(类型标识符或数据)
例2.1 使用sizeof运算符测定Visual C++ 6.0编译系统中C语言各基本数据类型所占用的
字节数。
#include
void main()
{
printf("int:%d Bn",sizeof(int));
printf("unsigned:%d Bn",sizeof(unsigned));
printf("short:%d Bn",sizeof(short));
printf("unsigned short:%d Bn",sizeof(unsigned short));
printf("long:%d Bn",sizeof(long));
printf("unsigned long:%d Bn",sizeof(unsigned long));
2
发布者:admin,转转请注明出处:http://www.yc00.com/web/1715523557a2631063.html
评论列表(0条)