2.2.1 标识符命名5 j% b9 v( L1 P6 @4 b
在C语言中,标识符是对变量、函数标号和其它各种用户定义对象的命名。标识符的长度可以是一个或多个字符。绝大多数情况下,标识符的第一个字符必须是字母或下划线,随后的字符必须是字母、数字或下划线(某些C语言编译器可能不允许下划线作为标识符的起始字符)。下面是一些正确或错误标识符命名的实例。
( S% A1 O7 O% _5 @ 正确形式 错误形式: s7 D; w5 j& u. D4 f4 _( c! e. i
count 2count
& m5 h$ f/ K! f; j3 \4 d6 n test23 hi!there
9 T% e1 s1 ?; p( y high_balance high..balance$ ~3 {! c# {$ E( T5 K
A N S I标准规定,标识符可以为任意长度,但外部名必须至少能由前8个字符唯一地区分。这里外部名指的是在链接过程中所涉及的标识符,其中包括文件间共享的函数名和全局变量名。这是因为对某些仅能识别前8个字符的编译程序而言,下面的外部名将被当作同一个标识符处理。( g% E" Z5 z6 g# n
counters counters1 counters24 Z8 G$ H( g: Y: i! Q* E+ G) t
A N S I标准还规定内部名必须至少能由前3 1个字符唯一地区分。内部名指的是仅出现于定义该标识符的文件中的那些标识符。C语言中的字母是有大小写区别的,因此count Count COUNT是三个不同的标识符。标识符不能和C语言的关键字相同,也不能和用户已编制的函数或C语言库函数同名。$ b& }" l/ D" w! H
2.2.2 常量6 x* O* x8 ?, P4 R7 m9 J" o3 b& p
C语言中的常量是不接受程序修改的固定值,常量可为任意数据类型,如下例所示:! E/ M9 J7 w9 y. X# S& D" m
数据类型 常量举例9 [; m& `0 K L
char ' a '、' \ n '、' 9 '
* F- Q0 g" p0 @2 O1 n! u9 b& u6 A( O1 ? int 21、123 、2100 、-234
' ]% i) M, q! K, c& Y( N2 E B7 D long int 35000、-34
. Z: a/ ^5 d0 w7 j1 A" |- } short int 10、-12、909 m3 E" W) u9 W4 \( ?4 S
unsigned int 10000、987、400009 Q+ V3 L. M9 g, n6 Y$ n! |: r
float 123.23、4.34e-35 Y" k/ m3 U- [( d' x7 ?9 e. |
double 123.23、12312333、-0.9876234. ], z' }0 \, D: K" l. C
C语言还支持另一种预定义数据类型的常量,这就是串。所有串常量括在双撇号之间,例如"This is a test"。切记,不要把字符和串相混淆,单个字符常量是由单撇号括起来的,如'a '。
" W, @; F/ w4 \ 2.2.3 变量
w! j& }. @* G0 d 其值可以改变的量称为变量。一个变量应该有一个名字(标识符),在内存中占据一定的存储单元,在该存储单元中存放变量的值。请注意区分变量名和变量值这两个不同的概念。所有的C变量必须在使用之前定义。定义变量的一般形式是:% y/ P2 o! A" I, A
type variable_list;: }" ?; e) `/ g2 D, e
;
" d, [5 ?0 `; H) h+ |8 R& F 这里的t y p e必须是有效的C数据类型,v a r i a b l e _ l i s t(变量表)可以由一个或多个由逗号分隔的多个标识符名构成。下面给出一些定义的范例。: h0 g7 T9 s( ?5 P" d
int i, j, l;
. r# c( D2 _1 j j# C B ;short int si;0 _5 s% t( w- }% D" k
;unsigned int ui;, `, Z: @2 p) Y: y y$ y
;double balance, profit,loss;- e* ?2 y% K1 m+ X6 p/ X. L6 R
;
7 a. H" H% |8 R 注意C语言中变量名与其类型无关。 |