C语言概述
1.1什么是C语言
一提到语言这个词语,自然会想到的是像英语、汉语等这样的自然语言,因为它是人和人交换信息不可缺少的工具而今天计算机遍布了我们生活的每一个角落,除了人和人相互交流之外,我们必须和计算机交流。用什么样的方式和计算机做最直接的交流呢?人们自然想到的是最古老也是最方便的方式–语言,而C语言就是人和计算机交流的一种语言。语言是用来交流沟通的,有一方说,有另一方听,必须有两方参与,这是语言最重要的功能
·说的一方传递信息,听的一方接收信息;
·说的一方下达指令,听的一方遵循命令做事情
语言是人与人交流,C语言是人与机器交流 只是,人可以不听另外一人,但是,计算机是无条件服从。
语言有独特的语法规则和定义,双方必须遵循这些规则和定义才能实现真正的交流。
1.2为什么学习C语言
1.2.1 C 语言特点
1)优点
-
代码量小
-
执行速度快
-
功能强大
-
编程自由
2)缺点
-
写代码实现周期长
-
可移植性差
-
过于自由,经验不足易出错
-
对平台库依赖较大
1.2.2 C语言应用领域
C语言的应用及其广泛,从网站后台,到底层操作系统,从多媒体应用到大型网络游戏,均可使用C语言来开发
-
C语言可以写网站后台程序
-
C语言可以专门针对某个主题写出功能强大的程序库
-
C语言可以写出大型游戏的引擎
-
C语言可以写出另一个语言
-
C语言可以写操作系统和驱动程序,并且只能用C语言编写
-
任何设备只要配置了微处理器,就都支持C语言,从微波炉到手机,都是由C语言技术来推动的
1.2.3 C语言的简洁
C语言仅有32个关键字,9种控制语句,34种运算符,却能完成无数的功能
32个关键字:
关键字 | 说明 |
---|---|
auto | 声明自动变量 |
break | 跳出当前循环 |
case | 开关语句分支 |
char | 声明字符型变量或函数 |
const | 声明只读变量 |
continue | 结束当前循环,开启下一轮循环 |
default | 开关语句中的 “其他”分支 |
do | 循环语句的循环体 |
double | 声明双精度变量或函数 |
else | 条件语句否定分支(与 if 连用) |
enum | 声明枚举类型 |
extem | 声明变量是在其他文件正声明 |
float | 声明浮点型变量或函数 |
for | 一种循环语句 |
goto | 无条件跳出语句 |
if | 条件语句 |
int | 声明整形变量或函数 |
long | 声明长整型变量或函数 |
register | 声明寄存器变量 |
return | 子程序返回语句(可以带参数,也可不带参数)循环条件 |
short | 声明短整型变量或函数 |
signed | 声明有符号类型变量或函数 |
sizeof | 计算数据类型长度 |
static | 声明静态变量 |
struct | 声明结构体变量或函数 |
switch | 用于开关语句 |
typedef | 用以给数据类型取别名 |
unsigned | 声明无符号类型变量或函数 |
union | 声明共用数据类型 |
void | 声明函数无返回值或无参数,声明无类型指针 |
volatile | 说明变量在程序执行中可被隐含地改变 |
while | 循环语句的循环条件 |
9种控制语句
控制语句 | 类型 |
---|---|
if()~ else~ | 条件语句 |
for()~ | 循环语句 |
while()~ | 循环语句 |
do ~ while() | 循环语句 |
continue | 结束本次循环语句 |
break | 终止执行switch或循环语句 |
switch | 多分支选择语句 |
goto | 转向语句 |
return | 从函数返回语句 |
34种运算符
运算符 | 符号 |
---|---|
算数运算符 | + - * / % ++ – |
关系运算符 | < <= == > >= != |
逻辑运算符 | ! && ~ || |
位运算符 | << >> & ^ | |
赋值运算符 | *= /= = %= += -= <<= >>= &= ^= |= |
条件运算符 | ?: |
逗号运算符 | , |
指针运算符 | *** &** |
求字节数 | sizeof |
强制类型转换 | (类型) |
分量运算符 | . -> |
下标运算符 | [] |
其他 | () |
1.3 C语言编译过程
·1.3.1 C语言编译步骤
C语言代码编译成可执行程序经过4步:
**1)预处理:**宏定义展开、头文件展开、条件编译等,同时将代码中的注释删除,这里并不会检查语法
**2)编译:**检查语法,将预处理后的文件编译生成汇编文件
**3)汇编:**将汇编文件生成目标文件 (二进制文件)
**4)链接:**C语言写的程序是需要依赖各种库的,所以编译之后还需要把库链接到最终可执行的程序中去