
2.1 常量和变量
学习目标
1)掌握常用标识符的命名规则。
2)掌握常量和变量的定义与引用方法。

实例5
实例5 常量和变量——输出常量与变量的值
实例任务
定义不同类型的几个变量,然后对应输出相应的常量值和变量值。程序的运行结果如图2-1所示。

图2-1 程序运行结果
程序代码


相关知识
1.标识符
标识符用来标识变量名、符号常量名、函数名、数组名、文件名、类名、对象名等,其基本构成元素源自字符集。C语言的字符集包括英文字母、数字字符和一些特殊字符。用这些基本元素单位命名标识符时,一定要遵循以下4条原则。
1)必须由字母(a~z,A~Z)或下画线(_)开头。
2)由字母、数字或下画线组成,长度不超过32个字符。
3)标识符中的大小写字母有区别。
4)不能与关键字同名。
下面这些是不合法的标识符和变量名:
M.d.,int,y 123,#33,3d64
2.常量
常量是数据在内存中的一种表示形式,在程序运行过程中值永远保持不变。常用的常量类型有5种,包括整型常量、实型常量、字符型常量、字符串常量和符号常量。
整型常量就是整数,常用的表示形式有十进制,如10、30等。八进制常量表示形式以0开头,如013、012等。十六进制常量表示形式以0x或0X开头,如0x13、0X12等。
实型常量就是指带小数点的数,包括指数,如3.14、-1.2、1.2e6、10.5E8等。其中,1.2e6表示数学上的1.2×106,10.5E8表示数学上的10.5×108。
字符型常量是单引号引起来的单个字符,这些字符为ASCII字符,各有其对应的ASCII码值。字符型常量包括一些转义字符。转义字符及其输出结果的对照关系如表2-1所示。
表2-1 转义字符及其输出结果

字符串常量是用双引号引起来的0个或多个字符。字符串常量形式给出的是字符串在存储空间中的起始地址。如“Hello World!”就是一个字符串常量。
符号常量是指以标识符来代替一个值,这个标识符的值在程序运行过程中不能再改变。它在编译预处理阶段使用#define来进行定义,也就是在程序的开头定义。常量名的类型由所给的常量值的类型来定,不需要再单独指明。符号常量的定义形式为:

如实例中的定义语句“#define C 'x'”定义了一个符号常量,常量名为C。
3.变量
变量是指在程序运行过程中其值可以被改变的量,C语言变量遵循先定义后引用的原则。变量的定义形式为:

变量在定义时,可以先定义,后赋值,也可以在定义的同时赋初值。如实例中的变量定义语句都是合法的:

变量定义很灵活,允许在定义的同时对部分变量赋初值,如下列定义语句都是合法的:

但不允许同时对几个变量赋同一个值,如下列定义语句是错误的:

课堂精练
1)已知频率求波长。光的速度为3×108m/s,已知频率为50Hz,求此频率光波的波长。程序运行结果如图2-2所示。
根据程序运行结果,请将下面的程序补充完整并调试。

2)摄氏温度和华氏温度的转换。已知摄氏温度与华氏温度的转换公式为:C=5(F-32)/9,输入摄氏温度的值,请输出华氏温度的值。程序运行结果如图2-3所示。

图2-2 程序运行结果(1)

图2-3 程序运行结果(2)
根据程序运行结果,请将下面的程序补充完整并调试。
