账套共享资源组:231662552
C语言的数据类型
在第一课中,我们已经看到程序中使用的各种变量都要提前解释,即先解释后使用。变量的描述可以包括三个方面:
数据类型
存储类型
范围
在本课中,我们将只介绍数据类型描述。其他解释将在后面的章节中介绍。所谓数据类型,是根据被解释量的性质、表示形式、占用的存储空间大小和结构特征来划分的。在C语言中,数据类型可以分为四类:基本数据类型、结构化数据类型、指针类型和空类型。
1.基本数据类型
基本数据类型最重要的特点是它们的值不能分解成其他类型。也就是说,基本数据类型是不言自明的。
2.构造数据类型构造数据类型
根据一个或多个定义的数据类型,它由构造的方法定义。也就是说,一个构造类型的值可以分解成几个“成员”或“元素”。每个“成员”都是基本数据类型或构造类型。在C语言中,有几种类型的构造:
数组类型
型式
关联类型
3.指针类型
指针是一种特殊而重要的数据类型。它的值用来表示内存中一定数量的地址。指针变量的值虽然和整数量相似,但却是两个完全不同的量,不能混淆。4.调用函数值时,空类型通常应该向调用方返回函数值。返回的函数值有一定的数据类型,应该在函数定义和函数描述中说明。例如,在示例中给出的max函数的定义中,函数头为:int max(int a,int b);“int”类型说明符意味着函数的返回值是一个整数。另一个例子是,在这个例子中,使用了库函数sin。因为系统规定其函数的返回值为双精度浮点型,在赋值语句中s=sin(x);s也必须是双精度浮点类型,才能与sin函数的返回值保持一致。因此,在解释部分,S被解释为双精度浮点类型。但是,还有一种函数在被调用后不需要将函数值返回给调用者。这种函数可以定义为“空类型”。其类型说明符无效。它将在第5章功能中详细介绍。在本章中,我们首先介绍基本数据类型中的整数、浮点和字符类型。其他类型将在后面的章节中介绍。
基本数据类型量可以根据其值是否可以改变分为常量和变量。在程序执行过程中,数值不变的量称为常量,数值可变的量称为变量。它们可以结合数据类型进行分类。例如,它可以分为整数常量、整数变量、浮点常量、浮点变量、字符常量、字符变量、枚举常量和枚举变量。在程序中,常量可以直接引用,无需解释,而变量在使用前必须解释。
整型量
整数量包括整数常量和整数变量。整数常数是一个整数常数。在C语言中,使用的整数常量有三种:八进制、十六进制和十进制。
整数常数
1.八进制整数常量八进制整数常量必须以0开头,即0是八进制数的前缀。数字值为0 ~ 7。八进制数通常是无符号数。
以下数字是合法的八进制数:
05 (13位小数)0101 (65位小数)0177777 (65535位小数)
以下数字不是合法的八进制数:
26(不带前缀0) 03A2(包括非八进制数字)-0127(出现减号)
2.十六进制整数常数
十六进制整数常量以0x或0X为前缀。其数字值为0~9,A~F或a ~ f。
以下数字是合法的十六进制整数常量:
0X2A(十进制42)0xa 0(十进制160)0x ffff(十进制65535)
以下数字不是合法的十六进制整数常量:
5A(不带前缀0X)0X3H(带非十六进制数字)
3.十进制整数常数
十进制整数常量没有前缀。它的个数是0 ~ 9。
以下数字是合法的十进制整数常数:
237 -568 65535 1627
下列数字不是合法的十进制整数常数:
03(无前导0) 23D(带非十进制数字)
整数变量
不管你是cxdh还是rydsn,边肖我都欢迎加入C/C共享资源群:231662552不定时分享干货,包括一份2018年最新学习资料和我自己编的零基础入门课程,发给大家,欢迎初级和高级伙伴。
整数变量可分为以下几类:
1.基型
类型说明符是int,占用内存2个字节,它的值是一个基本的整数常量。
2.短舍入
类型说明符是短整型或短“C110F1”。占用的字节和值范围与基本类型相同。
3.长整数
类型说明符为long int或long,占用内存4个字节,其值为长整型常量。
4.无符号类型
类型说明符是无符号的。
无符号类型可以与以上三种类型匹配:
(1)无
符号基本型 类型说明符为unsigned int或unsigned。(2)无符号短整型 类型说明符为unsigned short
(3)无符号长整型 类型说明符为unsigned long
各种无符号类型量所占的内存空间字节数与相应的有符号类型量相同。但由于省去了符号位,故不能表示负数。 下表列出了Turbo C中各类整型量所分配的内存字节数及数的表示范围。
类型说明符 数的范围 分配字节数
int -32768~32767 ■■
short int -32768~32767 ■■
signed int -32768~32767 ■■
unsigned int 0~65535 ■■
long int -2147483648~2147483647 ■■■■
unsigned long 0~4294967295 ■■■■
整型变量的说明
变量说明的一般形式为: 类型说明符 变量名标识符,变量名标识符,...; 例如:
int a,b,c; (a,b,c为整型变量)
long x,y; (x,y为长整型变量)
unsigned p,q; (p,q为无符号整型变量)
在书写变量说明时,应注意以下几点:
1.允许在一个类型说明符后,说明多个相同类型的变量。各变量名之间用逗号间隔。类型说明符与变量名之间至少用一个空格间隔。
2.最后一个变量名之后必须以“;”号结尾。
3.变量说明必须放在变量使用之前。一般放在函数体的开头部分。
实型常量
实型也称为浮点型。实型常量也称为实数或者浮点数。在C语言中,实数只采用十进制。它有二种形式: 十进制数形式指数形式
1.十进制数形式
由数码0~ 9和小数点组成。例如:0.0,.25,5.789,0.13,5.0,300.,-267.8230等均为合法的实数。
2.指数形式
由十进制数,加阶码标志“e”或“E”以及阶码(只能为整数,可以带符号)组成。其一般形式为a E n (a为十进制数,n为十进制整数)其值为 a*10,n 如: 2.1E5 (等于2.1*10,5), 3.7E-2 (等于3.7*10,)-2*) 0.5E7 (等于0.5*10,7), -2.8E-2 (等于-2.8*10,)-2*)以下不是合法的实数 345 (无小数点) E7 (阶码标志E之前无数字) -5 (无阶码标志) 53.-E3 (负号位置不对) 2.7E (无阶码)
标准C允许浮点数使用后缀。后缀为“f”或“F”即表示该数为浮点数。如356f和356.是等价的。例2.2说明了这种情况:
void main()
{
printf("%fn%fn",356.,356f);
}
void 指明main不返回任何值 利用printf显示结果 结束
实型变量
实型变量分为两类:单精度型和双精度型,
其类型说明符为float 单精度说明符,double 双精度说明符。在Turbo C中单精度型占4个字节(32位)内存空间,其数值范围为3.4E-38~3.4E+38,只能提供七位有效数字。双精度型占8 个字节(64位)内存空间,其数值范围为1.7E-308~1.7E+308,可提供16位有效数字。
实型变量说明的格式和书写规则与整型相同。
例如: float x,y; (x,y为单精度实型量)
double a,b,c; (a,b,c为双精度实型量)
实型常数不分单、双精度,都按双精度double型处理。
void main()
{
float a;
double b;
a=33333.33333;
b=33333.33333333333333;
printf("%fn%fn",a,b);
}
此程序说明float、double的不同
a ■■■■
b ■■■■■■■■
a<---33333.33333
b<---33333.33333333333;;
显示程序结果
此程序说明float、double的不同
float a;
double b;
a=33333.33333;
b=33333.33333333333333; 从本例可以看出,由于a 是单精度浮点型,有效位数只有七位。而整数已占五位,故小数二位后之后均为无效数字。b 是双精度型,有效位为十六位。但Turbo C 规定小数后最多保留六位,其余部分四舍五入。