1.1 数据类型

更新于 2026年10月10日 版权声明
1.1 数据类型

在C语言中,数据类型可以分为基本类型、构造类型、指针类型和空类型,其中,基本类型可以分为整型、实型、字符型,构造类型包括数组、结构体、枚举类型。整型可以分为短整型(short)、长整型(long)、整型(int),实型可分为单精度型(float)、双精度型(double)、字符型(char)。

C语言有32个关键字,包括auto、break、case、char、const、continue、default、do、double、else、enum、extern、float、for、goto、if、int、long、register、return、short、signed、sizeof、static、struct、switch、typedef、unsigned、union、void、volatile、while。每个关键字都有特定的含义,例如,int用于声明整型变量或函数;float用于声明浮点型变量或函数;short用于声明短整型变量或函数;char用于声明字符型变量或函数返回值类型;long用于声明长整型变量或函数。

下面将详细介绍常量和变量。

常量是指在程序执行过程中,其值不可改变的量。例如,整型常量包括10、3、-5等;实型常量包括2.5、-6.3、0.15等;字符常量包括1、k、*等;字符串常量包括"987"、"hijst"、"I am a student"等。

除上述常量类型外,还有一种常量——符号常量。若在程序中用一个标识符来表示一个常量,这个标识符就是符号常量。符号常量名通常用大写字母或大写字母组合来表示。一般用下面的预处理命令的格式来定义符号常量:

#def ine标识符(符号常量)常量

一旦定义了符号常量,在整个程序执行过程中,该符号常量的值都保持不变。例如,指令#define A 100定义了A为符号常量,其值为100,因此,在程序运行中,A就表示常量100。

变量是指在程序运行期间其值可以改变的量,通常以标识符来命名。C语言规定标识符是由字母、数字或下划线三种字符组成,并且只能以字母或下划线开头,即起始字符不能为数字。在程序编译过程中,系统会为变量分配相应存储单元。例如,_a、cat、Year、name_1均为合法的变量名,而4ab、a.b、%a、@、x<y均为不合法变量名。因为,4ab是数字开头的,a.b包含了不合法的字符“.”,%a包含了不合法的字符“%”,“@”不是三种合法字符中的字符,x<y中包含了不合法的字符“<”。在定义变量时,不仅要使用字母、数字、下划线三种合法组成字符来定义,还要注意大小写字母是两个不同的标识符。

1.整型常量和变量

(1)整型常量

整型可以分为短整型(short)、长整形(long)、整型(int)。在C语言中,整型常量按进制可以分为十进制整型常量、八进制整型常量、十六进制整型常量。十进制整型常量包括10、980等;八进制整型常量以0开头,如032、0671、-055等;十六进制整型常量以0x开头,如0x32、0x671、-0x55等。

例1-1 将下面的八进制数转换成十进制数:

032,0671,-055

分析:

032表示八进制数32,转换成十进制数为:

3×81+2×80=26

0671表示八进制数671,转换成十进制数为:

6×82+7×81+1×80=6×64+7×8+1=384+56+1=441

-055表示八进制数-55,转换成十进制数为:

-(5×81+5×80)=-45

例1-2 将下面的十六进制数转换成十进制数:

0x32,0x671,-0x55

分析:

0x32表示十六进制数32,转换成十进制数为:

3×161+2×160=3×16+2×1=50

0x671表示十六进制数671,转换成十进制数为:

6×162+7×161+1×160=6×256+7×16+1=1536+112+1=1649

-0x55表示十六进制数-55,转换成十进制数为:

-(5×161+5×160)=-(80+5)=-85

(2)整型变量(https://www.daowen.com)

在不同的编译系统中对程序进行编译时,对于整型变量分配的存储单元大小是不同的,一般是分配4字节的存储单元,即32位大小的存储单元。例如,对于程序

int a=1,b=2,c=3;

程序编译过程中,系统会分配4字节的存储单元给变量a,再分配4字节的存储单元给变量b,最后分配4字节的存储单元给变量c,这个顺序不能改变,因为程序是按指令一条一条执行的。

2.实型常量和变量

实型数据用来表示具有小数点的实数,即以小数形式或指数形式出现的实数,可分为单精度型(float)、双精度型(double)。程序执行时,系统会为float型变量分配4字节,为double型变量分配8字节。例如,-0.33、56.2、10e3都是实型常量。又例如,对于

f loat a=3.5,b=9.8;

变量a和b都是实型变量。

3.字符常量和变量

用单引号包含的一个字符表示字符型常量,并且只能用单引号括起来一个字符。例如,a、W、2、*等都是字符常量。

还有一些字符前面加了一个“\”,这些字符称为转义字符,已不是字符原来表示的含义了。

\n表示换行符。

\0是字符串结束标志。

\t即Tab,表示横向跳格,每次跳8个字符的位置。

\ddd ddd表示1到3位八进制数所代表的字符,且字符不能超过3位。例如,\101表示八进制的101,转换成十进制后为65,ASCII码为65的字符是A,使用printf函数输出该字符:

print f("%c",\101);

结果为:

图示

\xhh hh表示1到2位十六进制数所代表的字符。例如,\x41表示十六进制的41,转换成十进制后为65,ASCII码为65的字符是A,使用printf函数输出该字符:

pr int f("%c",\x41);

结果为:

图示

数据类型为char的变量称为字符变量。一个字符变量在内存中占1字节的大小。例如,定义两个字符变量c1和c2时使用下面的定义方法:

char c1,c2;

对于字符的ASCII码表,读者可以自行去查看一下,十进制数从0到255,对应了256个字符。需要记住大写字母A~Z的ASCII码为65~90,小写字母a~z的ASCII码为97~122。大写字母和对应的小写字母的ASCII码正好相差32。

例1-3 下列代码的运行结果是什么?

#include stdio.h

void main()

图示

对于同一个字符变量,按照字符型输出就是对应的字符,按照整型输出就是ASCII表中字符对应的ASCII码。

↑上一章 ↓下一章
关注公众号获取验证码
复制内容需要验证码(7.99元/天)