C语言基本概念
下面介绍C语言中常用的几个概念:标准C语言、标识符、关键字、运算符、分隔符、常量、变量和注释。
ANSI C是使用的最广泛的一个标准,也是第一个正式标准,被称为“标准C语言”。ANSI C于1980年由美国国家标准局(American National Standards Institute,简称ANSI)对外发布,各种编译器几乎都完整支持ANSI C,市面上的书籍、大学里的教材、网上的教程大都以ANSI C为基础进行讲解,C语言中文网也不例外,也以ANSI C为基础。
如果你遇到其他称呼,如ISO C、C89、C90、ANSI / ISO C,要知道都是指一个版本,其中的故事请查看:C语言的发展及其版本
以下标识符是合法的:
a, x, x3, BOOK_1, sum5
以下标识符是非法的:
3s 以数字开头
s*T 出现非法字符*
-3x 以减号(-)开头
bowy-1 出现非法字符减号(-)
在使用标识符时还必须注意以下几点:
C语言的关键字分为以下几类:
全部关键字请参考这里:C语言关键字及其解释[共32个]
另外,各种编译器都支持以“//”开头的注释,虽然它不是标准C的规定,但是早已成为事实标准,在程序中广泛使用。“//”仅支持单行注释,也就是说,注释中不能出现换行符;而“/* */”支持多行注释,注释中可以出现换行符。
例1-2和例1-3中使用了很多注释。
1. 标准C语言
C语言诞生于20世纪70年代,年龄比我们自己还要大,期间产生了很多标准,但是各种编译器对标准的支持不尽相同。ANSI C是使用的最广泛的一个标准,也是第一个正式标准,被称为“标准C语言”。ANSI C于1980年由美国国家标准局(American National Standards Institute,简称ANSI)对外发布,各种编译器几乎都完整支持ANSI C,市面上的书籍、大学里的教材、网上的教程大都以ANSI C为基础进行讲解,C语言中文网也不例外,也以ANSI C为基础。
如果你遇到其他称呼,如ISO C、C89、C90、ANSI / ISO C,要知道都是指一个版本,其中的故事请查看:C语言的发展及其版本
2. 标识符
在程序中使用的变量名、函数名、标号等统称为标识符。除库函数的函数名由系统定义外,其余都由用户自定义。C语言规定,标识符只能是字母(A~Z, a~z)、数字(0~9)和下划线(_)组成的字符串,并且其第一个字符必须是字母或下划线。以下标识符是合法的:
a, x, x3, BOOK_1, sum5
以下标识符是非法的:
3s 以数字开头
s*T 出现非法字符*
-3x 以减号(-)开头
bowy-1 出现非法字符减号(-)
在使用标识符时还必须注意以下几点:
- 标准C语言不限制标识符的长度,但它受各种版本的C语言编译系统限制,同时也受到具体机器的限制。例如在某版本C语言中规定标识符前八位有效,当两个标识符前八位相同时,则被认为是同一个标识符。
- 在标识符中,大小写是有区别的。例如BOOK和book 是两个不同的标识符。
- 标识符虽然可由程序员随意定义,但标识符是用于标识某个量的符号。因此,命名应尽量有相应的意义,以便于阅读理解,作到“顾名思义”。
3. 关键字
关键字是由C语言规定的具有特定意义的字符串,通常也称为保留字。用户定义的标识符不应与关键字相同。C语言的关键字分为以下几类:
分类 | 说明 |
---|---|
类型说明符 | 用于定义、说明变量、函数或其它数据结构的类型。如前面例题中用到的int、double等。 |
语句定义符 | 用于表示一个语句的功能。如【例1-3】中用到的if else就是条件语句的语句定义符。 |
预处理命令字 | 用于表示一个预处理命令。如前面各例中用到的include。 |
全部关键字请参考这里:C语言关键字及其解释[共32个]
4. 运算符
C语言中含有相当丰富的运算符。运算符与变量,函数一起组成表达式,表示各种运算功能。运算符由一个或多个字符组成,如加号(+)、减号(-)、乘号(*)等。5. 分隔符
在C语言中采用的分隔符有逗号(,)和空格两种。逗号主要用在类型说明和函数参数表中,分隔各个变量。空格多用于语句各单词之间,作间隔符。在关键字,标识符之间必须要有一个以上的空格符作间隔,否则将会出现语法错误,例如把 int a; 写成 inta; C语言编译器会把 inta 当成一个标识符处理,其结果必然出错。6. 常量
常量是值不能被改变的量。C语言中使用的常量可分为数字常量、字符常量、字符串常量、符号常量、转义字符等多种。在后面章节中将专门给予介绍。7.变量
变量由用户自己命名,用来保存特定类型的数据,数据可以被改变。数据类型有整数、浮点数、字符等,将在后面章节进行介绍。8. 注释
标准C语言的注释是以“/*”开头并以“*/”结尾的串。在“/*”和“*/”之间的即为注释。程序编译时,不对注释作任何处理。注释可出现在程序中的任何位置。注释用来向用户提示或解释程序的意义。在调试程序中对暂不使用的语句也可用注释符括起来,使翻译跳过不作处理,待调试结束后再去掉注释符。另外,各种编译器都支持以“//”开头的注释,虽然它不是标准C的规定,但是早已成为事实标准,在程序中广泛使用。“//”仅支持单行注释,也就是说,注释中不能出现换行符;而“/* */”支持多行注释,注释中可以出现换行符。
例1-2和例1-3中使用了很多注释。