本文最后更新于 天前,文中部分描述可能已经过时。
本文为 《C Primer Plus 第五版》 读书总结
第一章总结
C语言概览
- 贝尔实验室 Dennis Ritchie
1972
开发C
C语言特点
- 强大控制结构
- 快速
- 更小的程序
- 可移植
编程七步骤
- 定义目标程序
想要编写哪种程序,该程序能干啥
- 设计程序
多长时间能完成程序,程序的目标用户是谁,程序该用哪种方法处理数据
- 编写代码
C 源代码例子:1
2
3
4
5
int main() {
printf("hello world\n");
return 0;
} - 编译
- 运行程序
- 测试和调试
定期测试和调试源程序看有没有bug
- 维护和修改程序
根据具体情况具体需求定期维护和修改程序
编程机制
源代码→编译器→目标代码→链接器
→可执行代码
链接器←库代码、启动代码 链接器的作用将(目标代码、系统标准启动代码、库代码)结合在一起并存放在单个文件中
- Unix系统编译
若现在有个名叫inform.c的程序如果要在unix系统上编译它则:1
2
3
4
5
int main() {
printf("hello,world!\n");
return 0;
}几秒后会生成1
cc inform.c
a.out
的新文件,这是包含程序转换结果的可执行文件,要运行该文件,只需键入:输入结果如下:1
a.out
1
hello,world!
如果希望保存可执行文件
a.out
则必须将其重命名,否则,该文件会被下一次编译程序时产生的新一个a.out
文件代替 - Linux编译
linux系统编译类似于Unix系统,生成的可执行程序也是a.out
不同的是linux系统需要使用由GNU提供的被称为gcc的公共域编译器1
gcc inform.c
- windows系统编译
可用集成开发环境(IDE)编译C程序
第二章总结
1 |
|
上面的C语言程序实例说明如下:
#include
指示和头文件
1 |
其中stdio.h
为标准输入输出头文件( standard input output header )
而#include
为C预处理器指令
头文件指引编译器把您的程序正确地组合在一起
mian()
函数
1 | int main(void); |
这一行代码声明了一个命为main()
的函数且返回给操作系统一个整数
int main()
这个函数是C语言程序开始总是第一个被调用的函数
注释
1 | /* 可以这样写 */ |
注释不会被输出,只是方便程序开发人员更容易理解程序
花括号、程序体和代码块
1 | { |
通常,所有的C函数都使用花括号来表示函数体的开始和结束
声明
1 | int num; |
程序这一行叫声明语句(declaration statement)这行代码例子中声明了两件事情:1.在函数中有一个名为num
的变量 2.int
说明num
是一个整数,也就是说这个数没小数点或者小数部分(int是一种数据类型)
在C语言中,所有变量都必须在使用之前定义
变量名
这个变量名没什么好说的,但是定义变量名需要注意下面几点:
- 变量名第一个字符必须是字母或者是下划线
- C语言的变量名区分大小写
- 变量名不能使用关键字和保留标识符
赋值
1 | num = 1; |
这行程序是一个赋值语句(assignment statement)
这句话的意思就是说把值1
赋给变量num
,相当于num为一个房子,给这个房子里扔进去了一个1
的数字
赋值语句赋值的顺序是从右往左,分号结束
Return
语句
1 | return 0; |
return
语句是程序的最后一个语句
一个简单程序的结构
必须有一个名为main()
的函数
函数的描述由函数头和函数体组成
1 |
|
1 | { |
程序可读性
- 使用有意义的变量名
- 使用注释
- 使用空行
- 每行一个语句
每个C语句都是一个针对计算机的指令,并以一个分号作为结束标志
查找语义错误
- 自我检查
- 在程序关键点加入额外
printf()
- 使用调试器
关键字和保留标识符
auto | enum | restrict | unsigned |
---|---|---|---|
break | extern | return | void |
case | float | short | volatile |
char | for | signed | while |
const | goto | sizeof | _Bool |
continue | if | static | _Complex |
default | inline | struct | _Imaginary |
do | int | switch | |
double | long | typeof | |
else | register | union |
关键字是C语言的词汇
总结完毕
~
本文作者:M-GX
本文链接: https://www.peacecity.cn/2020/08/31/C%E8%AF%AD%E8%A8%80part1/