山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省
在计算机高级语言中,数据有两种表现形式:常量和变量。
常量
在程序运行过程中,其值不能被改变的量称为常量。数值常量就是数学中的常数。
常用的常量有以下几类:
( 1 )整型常量。如1000,12345,0,-345等都是整型常量。
( 2 )实型常量。
有两种表示形式:
①十进制小数形式,由数字和小数点组成。如123.456,0.345,-56.79,0.0,12.0等。
②指数形式,如12.34e3(代表12.34×10的3次方),一346.87e-25(代表-346.87×10的负25次方),0.145E-25(代表0.145×10的负25次方)等,由于在计算机输入或输出时无法表示上角或下角,故规定以字母e或E代表以10为底的指数。但应注意;e或E之前必须有数字,且e或E后面必须为整数。如不能写成e4,12e2.5。
( 3 )字符常量。有两种形式的字符常量:
①普通字符,用单撇号括起来的一个字符,如:‘a ',' Z ',' 3 ',' ? ',' # '。不能写成'ab'或' 12 '。请注意:单撇号只是界限符,字符常量只能是一个字符,不包括单撇号。' a '和' A '是不同的字符常量。字符常量存储在计算机存储单元中时,并不是存储字符(如a,z,#等)本身,而是以其代码(一般采用ASCII代码)存储的,例如字符’a '的ASCII代码是97,因此,在存储单元中存放的是97(以二进制形式存放)。
②转义字符,除了以上形式的字符常量外,C语言还允许用一种特殊形式的字符常量,就是以字符“\”开头的字符序列。例如在printf函数中的' \ n '代表一个“换行”符。这是一种在屏幕上无法显示的“控制字符”,在程序中也无法用一个一般形式的字符来表示,只能采用这样的特殊形式来表示。
常用的以“\”开头的特殊字符如下
列出的字符称为转义字符,意思是将“\”后面的字符转换成另外的意义。“\ n”中的“n”不代表字母n而作为“换行”符。表中倒数第2行是一个以八进制数表示的字符,例如\ 101 代表八进制数101ASCII字符,即' A '(八进制数101相当于十进制数65)
( 4 )字符串常量。如" boy”,”123”等,用双撇号把若干个字符括起来,字符串常量是双号中的全部字符(但不包括双撇号本身)。注意不能错写成' CHINA ',boy ',' 123 '。单撇号内只能包含一个字符,双撇号内可以包含一个字符串。
说明:从其字面形式上即可识别的常量称为“字面常量”或“直接常量”。字面常量是没有名字的不变量。
( 5 )符号常量用#define指令,指定用一个符号名称代表一个常量。如:# definePI 3.1416
经过以上的指定后,本文件中从此行开始所有的PI都代表3.1 416在对程序进行编译前,预处理器先对PI进行处理,把所有PI全部置换为3.1 416。这种用一个符号名代表一个常量的,称为符号常量。在预编译后,符号常量已全部变成字面常量( 3.1 416 )。使用符号常量有以下好处。
①含义清楚。看程序时从PI就可大致知道它代表圆周率。
②在需要改变程序中多处用到的同一个常量时,能做到“一改全改”。
变量
变量代表一个有名字的、具有特定属性的一个存储单元。它用来存放数据,也变量名就是存放变量的值。在程序运行期间,变量的值是可以改变的。
变量必须先定义,后使用。在定义时指定该变量的名字和类型。
常变量
C99允许使用常变量,方法是在定义变量时,前面加一个关键字const,如:
const int a = 3;
定义a为一个整型变量,指定其值为3,而且在变量存在期间其值不能改变。
常量的异同是:常变量具有变量的基本属性:有类型,占存储单元,只是不许改变其值。可以说,常变量是有名字的不变量,而常量是没有名字的不变量。有名字就便于在程序中被引用。
说明:有些编译系统还未实现C99的功能,因此不能使用常变量。
标识符
在计算机高级语言中,用来对变量、符号常量名、函数、数组、类型等命名的有效字符列统称为标识符(identifier)。简单地说,标识符就是一个对象的名字。
C语言规定标识符只能由字母、数字和下画线3种字符组成,且第1个字符必须为字或下画线。