一、常量
常量是指在程序运行过程中,其值不能被改变的量。常量分为以下数据类型,如:
(1)整型常量:1000,12345,0,-345
(2)实型常量:–十进制小数形式:如0.34 -56.79 0.0–指数形式:如12.34e3 (其中e代表以10为底的指数,因此该数代表12.34´103)
(3)字符常量:用单撇号括起来的一个字符。
普通字符:’?’、’a’
转义字符:以“\”开头的字符序列。意思是将 “\”后面的字符转换成另外的意义,如’\n’代表换行。
(4)字符串常量:用双撇号括起来的若干个字符,如”boy”、“H”。
符号常量:C语言中也可以用一个标识符来表示一个常量,称为符号常量。符号常量用#define指令,指定用一个符号名称代表一个常量。如:
#define PI 3.14
经过以上指定后,本文件中从此行开始的所有PI都代表3.14。使用符号常量的好处有:
①含义清楚。在定义符号常量时应考虑见名思义,因此,在看到PI时就大致知道这代表圆周率,在程序中需要使用圆周率时,就可直接使用PI。
②在改变一个常量时,能做到一改全改。如在程序中多处使用圆周率进行相关计算,当需要统一改变圆周率的计算精度时,可直接将定义常量的语句改为:#define PI 3.14159
二、变量
在程序运行期间,可能会用到一些临时数据,应用程序会将这些数据保存在一些内存单元中,每个内存单元都用一个标识符来标识。这些用来引用计算机内存地址的标识符称为变量,定义的标识符就是变量名,内存单元中存储的数据就是变量的值。

从上图可以看出,变量名实际上是以一个名字代表的一个存储地址
注意:变量必须先定义,后使用
三、标识符
一个对象的名字,如符号常量名、变量名以及后面将要学习的函数名等。
C语言规定标识符只能由字母、数字和下划线3种字符组成,且第一个字符必须为字母或下划线。
合法的标识符:如sum,average,_total, Class, day, BASIC, li_ling
不合法的标识符:M.D.John,¥123,#33,3D64,a>b
四、变量的数据类型
C语言要求在定义所有变量时都要指定变量的类型。为什么呢?因为在计算机中,数据是存放在存储单元中的,存储单元是由有限的字节构成的,每一个存储单元中存放数据的范围是有限的,不可能存放“无限大”的数,也不能存放循环小数,因此,在存放每一个数前,都要确定该数的数据类型,然后再按数据类型分配固定的个字节。
所谓类型,就是对数据分配存储单元的安排,包括存储单元的长度(占多少字节)以及数据的存储形式,不同的类型分配不同的长度和存储形式
C语言允许使用的数据类型基本类型、枚举类型、派生类型,本章主要了解基本类型。基本类型又包括整型类型和浮点类型,整型和浮点型又可细分为以下几种:
整型类型:基本整型、短整型、长整型、双长整型(C99新加)、字符型、布尔型(C99新加)
浮点类型:单精度浮点型、双精度浮点型、复数浮点型
不同类型的数据在内存中占用的存储单元长度是不同的,存储方法也不相同。
1.整型变量
整型数据常见的存储空间和值的范围如下表所示:

注意:
C标准没有具体规定各种类型数据所占用存储单元的长度,而是由各编译系统自行决定的。C标准只要求long型不短于int型(int≤long),short型不长于int型(short≤int)。
整型变量的定义形式如下:
类型说明符 变量名,变量名,……;
例如:
int a,b,c=0;
long x=1;
unsigned int p,q;
2.实型变量
实型变量也称为浮点型变量,用来存储小数数值的。浮点型变量分为两种:
float型(单精度浮点型):编译系统为float型变量分配4个字节,6位有效数字
double型(双精度浮点型):编译系统为double型变量分配8个字节,15位有效数字
例:观察以下程序的输出结果。
#include <stdio.h>
void main( )
{float a;
double b;
a=33333.3333;
b=33333.3333;
printf("%f\n%f\n",a,b);
return;
}
程序的输出结果为:

结果分析:
(1)变量a为单精度浮点型,只有6位有效数字,在将变量a用%f格式输出时,默认有6位小数,因此,虽然给变量a赋值时,只有4位小数,但输出时确有6位小数,并且输出的数中只有整数部分的5位和小数部分的第1位(共6位)是完全正确的,小数部分后5位有可能存在误差。
(2)变量b为双精度浮点型,共有15位有效数字,在将变量了b用%f格式输出时,默认有6位小数,因此,输出的数中小数部分6位,加上整数部分5位(共11位)都是完全正确的
3.字符型变量
字符型变量用于存储一个单一字符,用char表示,其中每个字符变量都会占用1个字节。
注意:在给字符型变量赋值时,要用一对英文半角格式的单引号(' ')把字符括起来。
如:
charc = ’A’; //系统把“A”的ASCII代码65赋给变量c
printf(”%d %c\n”,c,c);
输出结果是:
65 A
说明:任何字符在内存中存储的都是其ASCII值(整数),在输出时可指定输出形式为“整数(%d)”或“字符(%c)”。

