2.2 标识符、常量和变量 2.2.1 标识符
9 [3 g' a' p! J: x/ Z3 Q 在C语言中,有许多符号的命名,如变量名、函数名、数组名等,都必须遵守一定的规则,按此规则命名的符号称为标识符。合法标识符的命名规则是:标识符可以由字母、数字和下划线组成,并且第一个字符必须为字母或下划线。在C语言程序中,凡是要求标识符的地方都必须按此规则命名。以下都是合法的标识符:1 C2 x$ N! _% l: [; k" P) v
area、PI、_ini、a_array、a1234、P101p! ^' s& o# K& C: Z' }4 ^8 L
以下都是非法的标识符:5 B7 @# m& C1 S: C( U% |0 k
456P、cade-y、w.w、a&b7 X$ D: ]4 L# [5 @4 B( e# T7 }
在C语言的标识符中,大写字母和小写字母被认为是两个不同的字符,例如page和Page是两个不同的标识符。 对于标识符的长度(即一个标识符允许的字符个数),C语言编译系统是有规定的,即标识符的前若干个字符有效,超过的字符将不被识别。不同的C语言编译系统所规定的标识符有效长度可能会不同。有些系统允许取较长的名字,读者在取名时应当了解所用系统的具体规定。
6 i V3 E" M# E1 N5 f- B2 O( _+ F! M C语言的标识符可以分为以下三类。: Z/ Y6 g& w4 T3 M
一、关键字
9 t3 ?9 m( Y$ s/ _$ X2 e* _ C语言已经预先规定了一批标识符,它们在程序中都代表着固定的含义,不能另作他用,这些标识符称为关键字。例如,用来说明变量类型的标识符int,double以及if语句中的斌else等都已有专门的用途,它们不能再用作变量名或函数名。( C- m* [& a& j
二、预定义标识符% i0 |% A8 |, m' g; p! v) e0 p
所谓预定义标识符是指在C语言中预先定又并具有特定含义的标识符,如C语言提供的库函数的名字(如printf)和预编译处理命令(如define)等。C语言允许把这类标识符重新定义另作他用,但这将使这些标识符失去预先定义的原意。鉴于目前各种计算机系统的C语言都一致把这类标识符作为固定的库函数名或预编译处理中的专门命令使用,因此为了避免误解,建议用户不要把这些预定义标识符另作他用。, L( z5 R& N: t; ~2 [' a. D/ D
三、用户标识符% N8 ^5 g2 f! G) Q
由用户根据需要定义的标识将称为用户标识符,又称自定义标识符。用户标识符一般用来给变量、函数、数组等命名。程序中使用的用户标识符除要遵守标识符命名规则外,还应注意做到“见名知义”。即选择具有一定含义的英文单词或汉语拼音作为标识符,如numberl、red、yellow、green、work等,以增加程序的可读性。9 u3 T: L% U; q: Q, v N# P8 v# e% s
如果用户标识符与关键字相同,则在对程序进行编译时系统将给出出错信息;如果用户标识符与预定义标识符相同,系统并不报错,只是该预定义标识符将失去原定含义,代之以用户确认的含义,这样有可能会引发一些运行时错误。
$ C' t( P( d, ^+ r; A( @" U; L 2.2.2 常量
0 u- ~6 B% t: s* B 所谓常量是指在程序运行过程中,其值不能被改变的量。在C语言中,有整型常量、实型常量、字符常量和字符串常量等类型。整型常量还可以进一步分为短整型常量、长整型常量等。
4 f( J% e7 r+ m 整型常量和实型常量又称数值型常量,它们有正值和负值的区分。基本整型常量只用数字表示,不带小数点,例如12、-1、0等。实型常量必须用带小数点的数表示,例如3.14159、-2.71828、0.0等。'A’和'd’则是字符型常量,而"NCRE"和"Beijing"是字符串常量。由此可见,常量的类型从字面形式上是可区分的,C编译程序就是以此来确定常量类型的。 |