C语言读书总结Part1

2020-08-31 C

本文最后更新于 天前,文中部分描述可能已经过时。

本文为 《C Primer Plus 第五版》 读书总结

第一章总结

C语言概览

  • 贝尔实验室 Dennis Ritchie 1972 开发C

C语言特点

  • 强大控制结构
  • 快速
  • 更小的程序
  • 可移植

编程七步骤

  1. 定义目标程序

    想要编写哪种程序,该程序能干啥

  2. 设计程序

    多长时间能完成程序,程序的目标用户是谁,程序该用哪种方法处理数据

  3. 编写代码
    C 源代码例子:
    1
    2
    3
    4
    5
    #include <stdio.h>
    int main() {
    printf("hello world\n");
    return 0;
    }
  4. 编译
  5. 运行程序
  6. 测试和调试

    定期测试和调试源程序看有没有bug

  7. 维护和修改程序

    根据具体情况具体需求定期维护和修改程序

编程机制

源代码→编译器→目标代码→链接器→可执行代码

链接器←库代码、启动代码 链接器的作用将(目标代码、系统标准启动代码、库代码)结合在一起并存放在单个文件中

  • Unix系统编译
    若现在有个名叫inform.c的程序
    1
    2
    3
    4
    5
    #include <stdio.h>
    int main() {
    printf("hello,world!\n");
    return 0;
    }
    如果要在unix系统上编译它则:
    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
2
3
4
5
#include <stdio.h>
int main() {
printf("hello world");
return 0;
}

上面的C语言程序实例说明如下:

#include指示和头文件

1
#include <stdio.h> //该行告诉编译器包含文件stdio.h的全部信息

其中stdio.h为标准输入输出头文件( standard input output header
#include为C预处理器指令

头文件指引编译器把您的程序正确地组合在一起

mian()函数

1
int main(void);

这一行代码声明了一个命为main()的函数且返回给操作系统一个整数

int main()这个函数是C语言程序开始总是第一个被调用的函数

注释

1
2
/* 可以这样写 */
//可以这样写

注释不会被输出,只是方便程序开发人员更容易理解程序

花括号、程序体和代码块

1
2
3
{
...
}

通常,所有的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
2
#include <stdio.h>  //预处理指令
int main(void) //带参数的函数名
函数体
1
2
3
4
5
6
{
int q; //声明语句
q = 1; //赋值语句
printf("%d is neat. \n",q); //函数语句
return 0;
}

程序可读性

  • 使用有意义的变量名
  • 使用注释
  • 使用空行
  • 每行一个语句

每个C语句都是一个针对计算机的指令,并以一个分号作为结束标志

查找语义错误

  • 自我检查
  • 在程序关键点加入额外printf()
  • 使用调试器

关键字和保留标识符

C语言的关键字列表
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/

C