上一篇文章呢,我们介绍了 C 语言的由来。是怎么从机器语言一直转变到 C 语言的。那么这一篇文章我们将会开始的去学习 C 语言的特点。

C 语言的特点

下面呢,我将用一张表来说明 C 语言的优点和缺点。

优点 Pros 缺点 Cons
C 语言语句简洁紧凑使用方便灵活 对语法检查不严格
运算符丰富,表达能力强 运算符较多,初学者很难掌握
C 语言程序可移植性好
生成的目标代码质量高,运行效率高
语言处理能力强
C 语言是一种结构化语言

C 语言的约定

上一篇提到 C 语言是一个结构化编程语言,而且它 “类似” 人类的自然语言,但对语法的检查不严格。所以需要程序员之间达成一些约定,好让彼此之间的代码互相看得懂,接下来我们聊聊 C 语言的约定。

标识符 Identifier

标识符是指一个自定义的标识,用于标识数据类型,包括:变量、函数等。在 C 语言中(或者对于之后面对的每一门语言),对一个数据定义标识符时,应该做到见字知意,一个标识符应该是使用英语写出其所对应的现实世界的名词。并且使用小驼峰命名。比如:对一条公路上汽车的计数器的变量标识符命名为 carsCounter

关键字

C 语言中有 32 个关键字是我们在定义标识符时不能使用的。这些关键字是保留给 C 语言做某些操作所需要用到的,他们的分类如下表所示:

分类(Categories) 关键字(Keywords)
数据类型 char, double, enum, float, int, long, short, signed, unsigned, struct, union, void
控制语句 break, continue, case, do, default, else, for, goto, if, return, switch, while
存储类型 auto, extern, register, static
其他 const, sizeof, typedef, violate

用户自定义标识符

包括程序中定义的变量名、数据类型名(使用 typedef 语法)、函数名和符号常量名。一般来说,通常使用有意义的英文单词作为用户自定义标识符。

预定义标识符

通常我们可以使用 C 语言自带的运算符完成基本操作,但是我们还是需要进行某些特定的操作,如获取用户输入及输出。这时候我们就要用到预定义标识符。C 语言提供的大量的头文件和库函数,如我们常用的 printf, scanf 等,都是引用了 stdio.h 这个头文件中的函数。

C 语言中允许用户自定义标识符与预定义标识符同名,但是这会使原有标识符失去作用,不推荐这样做。

分隔符

在 C 语言中,我们需要使用分隔符,如:` 空格和,` 来构成完整的一个语句。比如说

int a, b, c;

以上语句的完整结构是:关键字 int + 标识符 a, b, c + 分隔符 , + 语句结束 ;

C 语言的语法成分

C 语言的语法成分包含了常量、变量、运算符、表达式、语句、函数定义与调用、输入与输出。

常量

整形常量如 2;实型常量如 2.0;字符型常量如 '2';字符串常量如 "C Programming"

变量

变量的定义形式为:类型名 变量名; 如:int a, b, c;

运算符

C 语言有多达 34 种运算符。其中操作 1 个数据对象的称为单目运算符;操作 2 个数据对象的称为双目运算符,如 2 + 2a = 10,操作三个数据对象的称为三目运算符,如 a > b ? a : b

表达式

由运算符、变量、常量、函数组合而成的有意义的使之成为表达式。表达式中可以包含多种数据类型的运算符,运算符有优先级。例如,表达式 b * b - 4 * a * c > 0 种,由于算术运算符优先于关系运算,所以先计算 b * b - 4 * a * c,再做关系比较运算 >

语句

C 语言中,语句是最基本的执行单位,以分号 ; 结尾。

函数的定义与调用

对于一些代码,我们可能会重复的去写,我们可以将这些重复的功能提取成函数。函数就是完成特定功能的小模块。一般情况下,C 语言程序包含多个函数。对于初学者,最常见的函数应该是:printfscanfputsgets 等。

一般情况下,函数拥有零个或多个参数,并拥有零个或一个返回值。我们可以用 return 语句来讲函数中处理好的值进行返回。

C 语言的入口函数 int main() 就是一个函数,在执行完 main 函数后,程序会返回 0 (return 0;),说明程序顺利执行。非 0 值代表程序执行过程中出现问题。

输入输出

C 语言是没有提供用于数据输入与输出的语句,所有的输入与输出都是通过系统提供的有关函数(如 scanf()printf())函数来实现的