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语言的数据类型

 

 

Tags:

发表评论