2.2.1 标识符命名
4 a' r# m& E* D4 I$ \ 在C语言中,标识符是对变量、函数标号和其它各种用户定义对象的命名。标识符的长度可以是一个或多个字符。绝大多数情况下,标识符的第一个字符必须是字母或下划线,随后的字符必须是字母、数字或下划线(某些C语言编译器可能不允许下划线作为标识符的起始字符)。下面是一些正确或错误标识符命名的实例。" ^, T9 f9 j& c" e6 W! Q6 }
正确形式 错误形式 m9 f) o3 A# i) `
count 2count
2 s" j* k+ x. e# N test23 hi!there) J+ ~. I5 C! V. s- V) x
high_balance high..balance7 U8 `& Z% e6 k$ ?* o
A N S I标准规定,标识符可以为任意长度,但外部名必须至少能由前8个字符唯一地区分。这里外部名指的是在链接过程中所涉及的标识符,其中包括文件间共享的函数名和全局变量名。这是因为对某些仅能识别前8个字符的编译程序而言,下面的外部名将被当作同一个标识符处理。5 t g9 D7 Q, W& n: \3 h# d
counters counters1 counters2
. T5 W$ a% ` Y. U( r A N S I标准还规定内部名必须至少能由前3 1个字符唯一地区分。内部名指的是仅出现于定义该标识符的文件中的那些标识符。C语言中的字母是有大小写区别的,因此count Count COUNT是三个不同的标识符。标识符不能和C语言的关键字相同,也不能和用户已编制的函数或C语言库函数同名。/ t: U/ H+ Y5 P4 G2 D# B* X& O& c# b
2.2.2 常量/ c h: f+ p' I E
C语言中的常量是不接受程序修改的固定值,常量可为任意数据类型,如下例所示:8 T9 p' d2 [. k; p1 r
数据类型 常量举例6 E x, Z# [2 Q, \
char ' a '、' \ n '、' 9 '
m( ^ J( P6 e8 j5 W$ z8 M int 21、123 、2100 、-2341 }/ {+ N' T8 \8 g
long int 35000、-34
/ D/ j* ^( p% |1 M" `% s short int 10、-12、90
5 A: F$ K$ X+ s9 }3 B- G unsigned int 10000、987、40000
; J( x0 I0 g1 y' M float 123.23、4.34e-3
* Y* Q% r& b7 \ double 123.23、12312333、-0.9876234
* f. ^5 C( o6 j" r! D; j8 ~ C语言还支持另一种预定义数据类型的常量,这就是串。所有串常量括在双撇号之间,例如"This is a test"。切记,不要把字符和串相混淆,单个字符常量是由单撇号括起来的,如'a '。
" H* v h6 i# m& p1 ? 2.2.3 变量! Z2 H7 m. S) c/ B7 `
其值可以改变的量称为变量。一个变量应该有一个名字(标识符),在内存中占据一定的存储单元,在该存储单元中存放变量的值。请注意区分变量名和变量值这两个不同的概念。所有的C变量必须在使用之前定义。定义变量的一般形式是:) ]$ i, p5 y& }* z
type variable_list;
& b" d* Z* ?% J' x ;2 U6 m" N( y" v, j- {
这里的t y p e必须是有效的C数据类型,v a r i a b l e _ l i s t(变量表)可以由一个或多个由逗号分隔的多个标识符名构成。下面给出一些定义的范例。
5 R0 X+ @( ^% Y/ [% h: m: \ int i, j, l;* b! R9 v' o8 n% x
;short int si; T+ x% ~; O+ t6 r. k$ U
;unsigned int ui;
* H" j$ L* ~ C4 B ;double balance, profit,loss;
" a/ Q$ d/ k0 ^5 s, k ;
1 f& F9 \5 Y y, [' U a m3 y 注意C语言中变量名与其类型无关。 |