C语言的语法基础
C语言的语法基础
程序设计语言都有自己的语法规则,必须严格遵循语法规则来编写程序,才能正确编译、连接、执行程序。本章叙述C语言的语法基础,包括标识符的命名规则、常量与变量的概念、基本输入/输出函数的用法、运算符与表达式的运算机制。建议本章授课10学时,上机4~6学时,自学12学时。
2.1 基本数据类型
2.1.1标识符与基本数据类型
1.标识符
标识符(indentifier)是一个名字,在C语言中标识符就是常量、变量、类型、语句、标号及函数的名称。程序设计语言中的标识符均有其命名规则。C语言中标识符有三类,
关键字、预定义标识符和用户定义标识符。
(1)关键字
已被C系统所使用的标识符称为关键字,每个关键字在C程序中都有其特定的作用,关键字不能作为用户标识符。
以下是Turbo C 2.0 的关键字共43个,所有关键字中只包含小字母和下划线。
由ANSI标准定义的共32个关键字,见表2.1
表2.1 ANSI标准定义的共32个关键字
auto | break | case | char | const | continue |
default | do | double | else | enum | extern |
float | for | goto | if | int | long |
register | return | short | signed | sizeof | static |
struct | switch | typedef | union | unsigned | void |
volatile | while |
Turbo C 2.0 又增加了11个扩展的关键字,见表 2.2
表2.2 Turbo C 2.0增加11个扩展的关键字
asm | _cs | _ds | _es | _ss | cdecl |
near | far | huge | interrupt | pascal |
(2)预定义标识符
C语言系统提供的库函数名和编译预处理命令等构成了预定义标识符。在程序中若使用了库文件包含,就把相应的预定义标识符定义在程序中了,程序设计时就可以使用这些预定义标识符。有少数预定义标识符可以直接使用,而不用在程序中使用库文件包含。例如:在程序中不加#include "stdio.h"库文件包含,也可以调用 printf、scanf 这两个函数。如果程序中没有相应的库文件包含,用户可以定义标识符与系统预定义标识符一样的名称,但应尽量避免这样做。因为C语言系统已经规定了预定义标识符的特定含义,用户再定义与之相同的名字,便强行改变了系统原来赋予该标识符的意义,导致使用上的混淆。例如:若程序中没有#include "stdio.h"(相应的库文件包含),用户就可以定义putchar作为用户的函数名,但这与系统原有的预定义标识符putchar同名,调用该函数时,常常不清楚是调用系统的函数putchar还是调用户定义的函数putchar。因此应尽量避免使用预定义标识符作为用户标识符。
(3)用户标识符
用户可以根据需要对程序中用到的变量、符号常量、用户函数、标号等进行命名,成为用户标识符。在Turbo C 2.0 中,用户标识符必须满足以下规则:
①标识符必须由英文字母、下划线、数字组成,不能包含其它字符(如全角字母和全角数字不能用于标识符);
②标识符必须由英文字母或下划线打头;
③标识符的长度不能超过32个字符;
④标识符大小写字母有区别(代表不同的标识符);
⑤标识符不能使用Turbo C 2.0 的关键字。
用户在定义标识符时应注意以下事项:
①禁止使用Turbo C 2.0关键字作为用户的标识符;
②尽量避免使用预定义标识符作为用户标识符;
③标识符中不能出现全角字符、空格,不要把下划线“_”写成减号“-”;
④标识符必须先定义后使用,使用未经定义的标识符将出现编译错误;
⑤使用的标识符最好做到见名知义,以增加源程序的易读性和易维护性。例如area 表示面积,sum 表示求和等;
⑥在同一函数(的不同复合语句)中,最好不要定义相同的标识符作变量名。
表2.3 举例说明了标识符的使用:
表2.3 举例说明标识符的使用
正确的标识符 | 不正确的标识符 |
不正确的原因 |
area3 | 3area | 数字打头 |
sort_score | sort-score | 标识符中使用了减号“-” |
DEFAULT | default | 使用关键字作标识符 |
a123b | a123b | 标识符中使用了全角字符“3” |
_915 | -915 | 标识符中使用了减号“-” |
xandy | x&y | 标识符中含有非法字符“&” |
2.基本型数据类型
程序是由处理对象和处理方法这两个主要要素组成。处理方法指的是算法和程序设计方法,而处理对象指的是数据结构。通常说的“程序=数据结构+算法”就包含了这个意义。因此数据是程序的重要组成部分。数据有一个非常重要特征即数据的类型。数据类型不仅确定了变量的性质、取值范围、占内存空间大小,而且还确定了变量所能参加的各种运算方式。例如一个整型(int)类型的数据,在IBM PC系列微机上取值范围规定为-32768~32767之间的整数,占内存空间2字节,能参与算术运算、位运算等。C语言中,每个变量在使用之前必须定义其数据类型,每个常量也必须属于对应的数据类型。C语言的数据类型如图2.1所示,本节将介绍基本数据类型。构造数据类型分别在第四章和第五章中介绍。
整型(int)
短整型(short int)
长整型(long int)
整型 无符号整型(unsigned int)
无符号短整型(unsigned short int)
无符号长整型(unsigned long int)
字符型(char)
基本类型 字符型 无符号字符型(unsigned char)
单精度(float)
实型 双精度(double)
长双精度(long double)
C数据类型 空类型(void)
数组( [ ] )
指针类型( * )
构造类型 结构体(struct)
共用体(union)
枚举(enum)
用户定义类型(typedef)
图2.1 C语言的数据类型
发表评论