计算机编程语言是用来控制计算机的行为及操作,协助人们解决现实中的问题,其能表达的数据类型也是从实际中提取并抽象出来形成的数据结构描述。
一、数学算式数据类型到C语言数据类型的映射
例如:数学中数的基础分类有正整数、负整数、小数等类别,数学中所有关于数的运算都是在基础分类上进行的。计算机出现之前,数学家们用稿纸进行大量的数学运算以求证数学问题和科学计算,这耗费了数学家们太多的精力。随着计算机科技的发展,大量复杂的数学运算交给计算机来执行,极大提高了计算效率,也让数学家们从复杂地数学运算中摆脱出来。
数学运算包含大量的计算表达式,计算机程序需要有连续处理算式和计算数据的能力,下面是一个简单的四则运算算式:
15.8+20*31.5-30
计算机程序要处理上述算式,就需要具备存储小数、整数、运算符的能力。C语言提供了存储小数、整数、运算符的基本数据类型。下图是算式中数据类型到C数据类型的映射图。

图 数学算式数据类型到C语言数据类型的映射
使用变量可以将数学算式中的数存储起来,下面讨论如何声明和初始化变量。
二、变量的声明和赋值
变量的声明语句是非执行语句,目的是为声明的变量预留存储空间,以备将来使用。
变量声明语法规则:数据类型 变量名;
其中,数据类型可以是C语言支持的任何数据类型;变量名为声明的变量名称。
示例:声明整型变量
int number;
示例:声明字符型变量
char op;
变量的初始化
对变量赋值的过程称为变量的初始化,声明变量时可以对变量直接赋值,如果在声明变量时没有对变量进行赋值,则应在后面的程序中为变量赋值。
示例:声明整型变量并赋值
int number= 30;
示例:为已声明的变量赋值
op=’+’;
下面简要说明一个解析数学算式并存储运算符和运算数的示例,为说明问题起见,给出一个简单数学算式:8.25+30。
声明三个变量用来存储运算数和运算符
float floatNum;
int intNum;
char op;
变量的存储
程序在计算上述数学算式时,首先从左到右扫描数学算式。假设本次扫描不考虑优先级运算,只是完成提取运算数和运算符的功能。扫描过程如下:如果是运算数,判断是整数还是小数,整数赋值给intNum,如果是小数赋值给floatNum,如果是运算符赋值给op。下图是扫描完成后,变量在内存储器的存储情况。

图 不同数据类型的变量在存储器的存储情况
从上图可以看出,不同数据类型的变量在存储器占用的空间也不相同。数据类型为字符型的变量在存储器占用一个字节的空间。C语言对整数类型并没有严格规定其长度(占用存储空间的字节数),只做了宽泛的限制。上图整数类型占用4个字节的存储空间,是指在32位操作系统下,整数类型占用4个字节的存储空间。
C语言基本数据类型见下图。

图 C语言基本数据类型
C语言基本数据类型包括数值、非数值两种类型。数值类型又分为整数类型和非整数类型,整数类型包括整型、短整型和长整型,非整数类型包括单精度浮点和双精度浮点。非数值包括字符类型。