二级C 精品课程2-2:标识符和关键字
文章作者 100test 发表时间 2007:04:06 21:30:29
来源 100Test.Com百考试题网
标识符是一个字符序列,用来标识变量、函数、数据类型等。任何程序都离不开标识符,也就是说,不可能有没有标识符的C 程序。在程序2-1中,include、void、main、int、i、cin、cout等都是标识符。
标识符可以由大写字母、小写字母、下划线(_)和数字0~9组成,但必须是以大写字母、小写字母或下划线(_)开头。在C 语言程序中,大写字母和小写字母不能混用,比如Name和name就代表两个不同的标识符。在表2-1中,我们给出了几个正确和不正确的标识符实例。
表2-1:正确和不正确的标识符实例 |
正确 |
不正确 |
smart |
5smart(不能数字开头) |
_decision |
bomb?(有非法字符?) |
key_board |
key.board(有非法字符.) | |
标识符的命名规则: 1. 所有标识符必须由一个字母(a~z或A~Z)或下划线(_)开头;
2. 标识符的其它部分可以用字母、下划线或数字(0~9)组成;
3. 大小写字母表示不同意义, 即代表不同的标识符,如前面的cout和Cout;
在定义标识符时,虽然语法上允许用下划线开头,但是,我们最好避免定义用下划线开头的标识符,因为编译器常常定义一些下划线开头的标识符。
C 没有限制一个标识符中字符的个数,但是,大多数的编译器都会有限制。不过,我们在定义标识符时,通常并不用担心标识符中字符数会不会超过编译器的限制,因为编译器限制的数字很大(例如255)。
一个写得好的程序,标识符应该尽量有意义。 比如表示年可以用year,表示长度可以用length,表示累加和可以用sum等,这样的标识符本身就增加了程序的可读性,使程序更加清晰易懂。
C 语言的标识符经常用在以下情况中: 1. 标识对象或变量的名字
2. 类、结构和联合的成员
3. 函数或类的成员函数
4. 自定义类型名
5. 标识宏的名字
6. 宏的参数
在C 中,有一些预定义的标识符,称之为关键字,也称之为保留字。例如,程序2-1中的int、void都是关键字。可见,关键字是一种特殊的标识符。关键字具有特定的含义,不能对它们再定义。例如,int、void在C 中被预定义为特定的数据类型,我们不能把它们再定义为变量的标识符。C 的关键字很多,不仅仅程序2-1中见到的int和void两个。标准 C 中预定义了63个关键字,参见表2-2。另外,还定义了11个运算符关键字,它们是:and、and_eq、bitand、bitor、compl、not、not_eq、or、or_eq、xor ?、xor_eq。在我们后面要学习的内容中,并没有涉及到C 的所有关键字,但会逐步介绍最重要和最常用的一些关键字。
另外,有些标识符虽然不是关键字,但C 语言总是以固定的形式用于专门的地方,也不能把它们当作一般标识符使用,以免造成混乱。这样的标识符有include、define等,我们在后面的学习中会逐渐遇到。
表2-2 C 关键字 |
asm |
default |
float |
operator |
static_cast |
union |
auto |
0delete |
for |
private |
struct |
unsigned |
bool |
do |
friend |
protected |
switch |
using |
break |
double |
goto |
public |
template |
virtual |
case |
dynamic_cast |
if |
register |
this |
void |
catch |
else |
inline |
reinterpret_cast |
throw |
volatile |
char |
enum |
int |
return |
true |
wchar_t |
class |
explicit |
long |
short |
try |
while |
const |
export |
mutable |
signed |
typedef |
. |
const_cast |
extern |
namespace |
sizeof |
typeid |
. . |
Continue |
false |
new |
static |
typename |
. . | |