2 类型、运算符与表达式
变量和常量是程序处理的两种基本数据对象
声明语句说明变量的名字及类型,也可以指定变量的初值,运算符指定将要进行的操作
表达式则把变量与常量组合起来生成新的值
对象的类型决定该对象可取值的集合以及可以对该对象执行的操作
ANSI 标准对语言的基本类型与表达式做了许多小的修改与增补
所有整型都包括 signed(带符号)和 unsigned(无符号)两种形式,且可以表示无符号常量与十六进制字符常量
浮点运算可以以单精度进行,还可以使用更高精度的 long double 类型运算
字符串常量可以在编译时链接
ANSI C 还支持枚举类型,该语言特性经过了长期的发展才形成
对象可以声明为 const(常量)类型,表明其值不能修改
该标准还对算术类型之间的自动强制转换规则进行了扩充,以适合于更多的数据类型
2.1 变量名
对变量的命名与符号常量的命名存在一些限制条件
名字是由字母和数字组成的序列,但其第一个字符必须为字母
下划线 _
被看做是字母,通常用于命名较长的变量名,以提高其可读性
由于 library 通常使用以下划线开头的名字,所以变量名不要以下划线开头
大写字母与小写字母是有区别的,所以 x
与 X
是两个不同的名字
在传统的 C 语言用法中,变量名使用小写字母,符号常量名全部使用大写字母
对于内部名称而言,至少前 31 个字符是有效的,第 31 个字符之后的字符可能无效
如:a234567890123456789012345678901xx
和 a234567890123456789012345678901yy
可能会被当做同一个名称
函数名与外部变量名的有效字符可能小于 31 个
因为汇编程序和加载程序可能会使用这些外部名称,而语言本身是无法控制加载和汇编程序的
对于外部名称,ANSI 标准仅保证前 6 个字符的惟一性,并且不区分大小写
类似于 if
、else
、int
、float
等关键字是保留给语言本身使用的,不能把它们用做变量名
所有关健字的字符都是小写的
选择的变量名要能够尽量从字面上表达变量的用途,这样做不容易引起混淆
局部变量一般使用较短的变量名(尤其是循环控制变量),外部变量使用较长的名称