本笔记为临时笔记,主要是我还没弄好个人博客,等我搞懂了Github的用法,这些笔记就转移到个人博客上面去。
本笔记遵循《C Primer Plus》(第6版)与《C语言程序设计》(第5版)制作。
一、C语言介绍(摘自百度百科)
C语言是世界上最流行、使用最广泛的面向过程的高级程序设计语言。 C语言对操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它高级语言,许多大型应用软件都是用C语言编写的。
简洁紧凑、灵活方便
C语言一共只有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示。它把高级语言的基本结构和语句与低级语言的实用性结合起来。 C 语言可以象汇编语言一样对位、字节和地址进行操作, 而这三者是计算机最基本的工作单元。
运算符丰富
C的运算符包含的范围很广泛,共有种34个运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C的运算类型极其丰富表达式类型多样化,灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。
数据结构丰富
C的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据类型的运算。并引入了指针概念,使程序效率更高。另外C语言具有强大的图形功能, 支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。
C是结构式语言
结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰, 便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。 [1]
C语法限制不太严格、程序设计自由度大
一般的高级语言语法检查比较严,能够检查出几乎所有的语法错误。而C语言允许程序编写者有较大的自由度。
允许直接访问物理地址,直接操作硬件
因此既具有高级语言的功能,又具有低级语言的许多功能,能够象汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可以用来写系统软件。
程序执行效率高
可移植性好
C语言有一个突出的优点就是适合于多种操作系统, 如DOS、UNIX,也适用于多种机型。
当然,C语言也有自身的不足,比如:C语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数组下标越界不作检查等。从应用的角度,C语言比其他高级语言较难掌握。
二、编写C程序的流程(这里针对考试题)
1. 定义程序的目标
在动手写程序之前,先要明确程序的目标(换到考试中,就是“读懂题目的要求和目的”)。明确程序需要什么信息,将会输出什么结果。
2. 设计程序
从这一步开始:我们要考虑程序如何表示与完成数据(对于考试而言,题目会提示你各种信息)。在第一步和第二步,你只需要用自然语言来描述即可。这两步的目的是让你拥有一个清晰的思路。
3. 编写代码
这一步是真正需要C语言的地方。也是答题的正式内容。
4. 编译
这一步由编译器自主完成。编译器会检查你程序中绝大部分的语法错误,但你的程序可能仍存在一些其他错误。随着学习的深入,你的程序的错误将会越来越难以察觉。
5. 运行程序(略)
我们将在IDE(集成开发环境)中编写程序,因此无需担心这方面的问题。
6. 测试与调试程序
这是整个编写流程中最关键的一步。运行程序并检查是否有错误。如果程序有语法错误,编译器将报错并提示错误。但能够运行并不代表程序没有错误。事实上,你会发现程序的输出结果有可能并不如意。查找并修复程序bug(错误)的过程被称为调试。
在将来的学习过程中,你会犯很多错。但无需担心,编程本身就是这样的过程。
三、编程的机制(推荐阅读)
虽然阅读这个章节对于你的编程水平并没有什么明显的好处,但为了“知其所以然”,我仍然推荐你阅读这个章节。
先来看一段程序(看不懂没关系,这里仅做举例):
//hello.c #include <stdio.h> int main() { printf("Hello,world!"); return 0; }
显然,我们所写的程序是一段文本。因此它被存储在一个文本文件中(后缀为.txt)。这个文件叫作源代码文件。一般以“.c”为后缀。在第一行,我们注释了文件名(命名文件需要另外进行)为“hello.c”。其中,“hello”叫作“基本名”,“.c”叫作“扩展名”。
电脑会用程序将源代码文件转换成可执行文件(包括可直接运行的机器语言代码)。这个过程分为“编译”和“链接”两个部分。
编译器会把源代码转换成目标代码(后缀为.obj),但是目标代码并不能直接运行。链接器会将启动代码(用于将程序与操作系统连接)和库代码(用于运行代码中的函数)合并成可执行代码,存放在可执行文件中(后缀为.exe)。
然后,操作系统会将这个可执行文件运行,输出程序的结果。
四、如何开始编程
在一些系统里,编译和链接是两个不同的步骤。但在我们的学习中,我们会使用IDE(集成开发环境)来编写并运行程序。你只需要点击对应的按键就能运行程序,这极大地节省了我们的精力。就我个人而言,我推荐由微软开发的Visual Studio程序。对于非计算机的理工科学生而言,它是最为方便的编程软件。关于它的下载、安装与启动,这里建议结合优快云、bilibili等论坛的教程进行,这里不再赘述。
(另:Visual Studio和 Visual Studio Code是两个完全不同的软件。区别在于,后者拥有更多的自定义空间,操作更复杂,功能也更加丰富,但对于大部分的非计算机专业理工科学生而言,Visual Studio 已经可以满足绝大部分的专业需要。)