1.语言简洁、紧凑,使用方便、灵活
C语言有37个关键字,9种控制语句,程序书写形式自由,主要用小写字母表示,压缩了一切不必要的成分。实际上,C是一个很小的内核语言,只包括极少的与硬件有关的成分,C语言不直接提供输入和输出语句、有关文件操作的语句和动态内存管理的语句等(这些操作由编译系统所提供的库函数来实现的),C的编译系统相当简洁。
关键字
auto | break | case | char | const | continue | default | do | double | else |
enum | extern | float | for | goto | if | inline | int | long | register |
restrict | return | short | signed | sizeof | static | struct | switch | typedef | union |
unsigned | void | volatile | while | _bool | _Complex | _Imaginary |
|
|
2.运算符丰富
C语言的运算符包含的范围很广泛,共有34种运算符。C语言把括号、赋值和强制类型转换等都作为运算符处理,从而使C语言哟运算类型极其丰富,表达式类型多样化。
运算符和结合性
优先级 | 运算符 | 含义 | 要求运算对象的个数 | 结合方向 |
1 | () | 圆括号 |
| 自左至右 |
| [] | 下标运算符 |
|
|
| -> | 指向结构体成员运算符 |
|
|
| . | 结构体成员运算符 |
|
|
2 | ! | 逻辑非运算符 | 1 (单目运算符) | 自右至左 |
| ~ | 按位取反运算符 |
|
|
| ++ | 自增运算符 |
|
|
| -- | 自减运算符 |
|
|
| - | 负号运算符 |
|
|
| (类型) | 类型转换运算符 |
|
|
| * | 指针运算符 |
|
|
| & | 取地址运算符 |
|
|
| sizeof | 长度运算符 |
|
|
3 | * | 乘法运算符 | 2 (双目目运算符) | 自左至右 |
| / | 除法运算符 |
|
|
| % | 求余运算符 |
|
|
4 | + | 加法运算符 | 2 (双目目运算符) | 自左至右 |
| - | 减法运算符 |
|
|
5 | << | 左移运算符 | 2 (双目目运算符) | 自左至右 |
| >> | 右移运算符 |
|
|
6 | < <= > >= | 关系运算符 | 2 (双目目运算符) | 自左至右 |
7 | == | 等于运算符 | 2 (双目目运算符) | 自左至右 |
| != | 不等于运算符 |
|
|
8 | & | 按位与运算符 | 2 (双目目运算符) | 自左至右 |
9 | ^ | 按位异或运算符 | 2 (双目目运算符) | 自左至右 |
10 | | | 按位或运算符 | 2 (双目目运算符) | 自左至右 |
11 | && | 逻辑与运算符 | 2 (双目目运算符) | 自左至右 |
12 | || | 逻辑或运算符 | 2 (双目目运算符) | 自左至右 |
13 | ? : | 条件运算符 | 3 (三目运算符) | 自右至左 |
14 | = += -= *= /= %= >>= <<= &= ^= != | 赋值运算符 | 2 (双目目运算符) | 自右至左 |
15 | , | 逗号运算符 (顺序求值运算符) |
| 自左至右 |
3.数据类型丰富
C语言提供的数据类型包括:整型、浮点型、字符型、数组类型、指针类型、结构体类型和共用体类型等,C99又扩充了复数浮点类型、超长整型和布尔类型等。尤其是指针类型数据,使用十分灵活和多样化,能用来实现各种复杂的数据结构(如链表、树、栈等)的运算。
4.具有结构化的控制语句
如if…else语句、do…while语句、switch语句和for语句等。用函数作为程序的模块单位,便于实现程序的模块化。
C语言是完全模块化和结构化的语言。
5.语法限制不太严格,程序设置自由度大。
6.C语言允许直接访问物理地址,能进行位操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。
C语言既具有高级语言的功能,又具有低级语言的许多功能,可用来编写系统软件。
7.用C语言编写的程序可移植性好。
8.生成目标代码质量高,程序执行效率高。
目前C语言的主要用于之一是编写“嵌入式系统程序”。