第一章:初识c语言
一、c语言的发展
C语言是我们大多数同学掌握的第一门编程语言,但是关于C语言到底是什么 ,大家也可能知识知道它是一门学习起来最简单的编程语言而已。那么本章内容,让大家重新认识一下C语言。
-
语言
我们讲到人与动物最大的区别就是人有独特的语言交流系统。多年来,随着人们社会活动的产生,人们在社会生活中就有了交流的必要,于是产生了语言这一交流工具。在后续的人类文明向不同的方向发展,根据不同文明的交流习惯与需求,也就形成不同的人与人之间用于交流的语言,这种用于人与人之间交流的语言我们称之为“自然语言”。后来伴随着计算机的出现,人们开始使用计算机解决生活中生产中遇到的一些问题,在这个过程中就需要人去教计算机做事,但是计算机并听不懂人们所讲的语言,哪怕是最简单的你问计算机1+1等于几。
你要教计算机做事,就必须讲计算机听的懂得语言,这种语言也就是我们所说的计算机语言,亦称为程序设计语言,至今世界上已有几千种程序设计语言,C语言就是其中一种典型的面向过程的程序设计语言。
-
C语言
C语言是由美国计算机科学家丹尼斯·里奇(Dennis Ritchie)在20世纪70年代初期(1972)开发出来的一种面向过程的编程语言。期初,贝尔实验室正在开发一种名为UNIX的操作系统,由于当时计算机的性能较低,编写UNIX操作系统所使用的汇编语言较为复杂、难以维护和移植。因此,里奇和他的同事们决定开发一种新的高级编程语言来解决这些问题。C语言最初是在DEC PDP-11小型计算机上开发出来的,后来逐渐被移植到其他平台上使用。
C语言最初被用来开发UNIX操作系统和相关的工具软件,因为它具有高效、简洁、灵活和可移植等特点。随着时间的推移,C语言开始在其他领域得到广泛应用,如系统软件、嵌入式系统、驱动程序、游戏开发、数据分析和人工智能等领域。
二、c语言的特点
- 语言简练、紧凑,使用方便、灵活
C语言的核心内容很少,只有32个关键字,9种控制语句;程序书写格式自由,压缩了一切不必要的成分。
-
c语言是一种结构化语言
用函数作为程序的基本单位,具有易于实现、层次清晰、便于按照模块化方式组织程序的控制流语句(if..else语句、switch语句、while语句、for语句)
-
丰富的数据类型
C语言包含的数据类型广泛,不仅包含有传统的字符型、整型、浮点型、数组类型等数据类型,还具有其他编程语言所不具备的数据类型,其中以指针类型数据使用最为灵活,可以通过编程对各种数据结构进行计算
三、c语言的开发环境搭建
-
C 语言开发环境有很多种,有 Tubor C、Visual C++ 6.0 这种元老级别的软件,有由 Bloodshed 公司推出的 Dev-C++ 软件(也称为Dev-Cpp),还有目前备受欢迎的 Visual Studio 系列软件,它们都是可以编写 C 语言程序的。但是,上述这些软件都只能在 Windows 系统下安装。如果是 Linux 系统,可以通过下载 GCC 命令编写 C 程序。我们本次课程采用的是Dev-C++ 软件这款软件。
-
Dev-C++是一个Windows环境下的一个适合于初学者使用的轻量级C/C++ 集成开发环境,它是一款自由软件,并且开放源代码。Dev-C++ 是一种适合初学者使用的集成开发环境,目前最新版本是 5.11版。
下载地址: http://crxzc.198424.com/dev-cpp_5.11_setup.zip
-
Dev-C++ 安装步骤
(1) 双击安装软件:
(2) 忽略中间内容选项:
继续:
(3) 安装之后默认进入初试界面,可以调整页面的字体,中文/英文
-
Dev-C++ 的使用步骤:作为初学者直接创建源文件即可
注意:在一个合适的位置,将它保存为 .C文件(C source files),而不是.cpp(C++ source files)
注意:将我们的编译器类型选成:64-bit Release ,这样有助于加快编译速度,但不能Debug,等需要用到Debug功能时,在选Debug模式。
四、c语言的第一个程序
需求:请你编译一个C程序,实现计算机屏幕上显示 "Hello World!" 信息。
-
c语言程序结构
#include <stdio.h> void main(){ .... }
(1) #include <stdio.h> 被称为 "预编译处理",它以 # 开头,只要在程序中使用输入输出函数,就需要在 main函数之前使用它 (2) main函数称为主函数,一个c语言程序必须包含一个main函数(并且只能有一个main函数),为程序的入口(c程序的执行总是从本程序的main函数开始执行);一个程序中可以包含一个主函数和多个普通函数,函数是C的基本单元
-
功能实现
#include <stdio.h> void main(){ printf("Hello World"); }
(1) c源程序文件约定的扩展名为: .c (2) 每条语句必须以 分号 ";" 结尾 (3) printf():是一个格式化输出库函数,用于在控制台展示信息,相关格式后续逐步讲解
运行结果:
(4) \n:代表换行符,用于控制下一行内容从最左端开始显示后续字符;后续具体讲解
五、c语言程序的执行过程
C语言是一种编译型的高级语言,描述解决问题算法的C语言源程序文件(文件后为.c)必须先用C语言编译程序(Compiler)将其编译,形成中间目标程序文件(文件缀为.obj),然后再用连接程序(Linker)将该中间目标程序文件与有关的库文件(文件缀为.1b)和其他有关的中间目标程序文件连接起来,形成最终可以在操作系统平台上运的二进制形式的可执行程序文件(文件后缀为.exe)。所以,把一个写在纸上的C语言程序代码转换为能在计算机操作系统平台上执行的可执行程序文件,一般需要经过几个步骤
- 编辑(Edit):利用编辑程序,将源程序逐一输人计算机中,最终形成一个源程序文件的过程。这期间必须严格遵守C语言的语法规则,要特别注意编辑程序是否添加了额外的格式字符或特殊字符,譬如全角符号、中文标点符号等。(程序员写代码)
- 编译(Compile):将上一步形成的源程序文件作为编译程序的输人,进行编译编译程序会自动分析、检查源程序文件的语法错误,并按两类错误类型(Warning、Brror报告出错行和原因。用户根据报告信息修改源程序,再编译,直到程序正确后,输出中间目标程序文件。(语法检查)
- 连接(Link):使用连接程序,将上一步形成的中间目标文件与所指定的库文件和其他中间目标文件进行连接。这期间可能出现缺少库文件或库文件不在指定路径等连接错误,同样连接程序会报告出错误信息。用户根据错误报告信息再修改源程序,再编译再连接,直到程序正确无误后输出可执行文件。
- 运行(Run):上步完成后,就可以运行可执行文件,得到运行结果。当然也可能由于解决问题的算法而使源程序编写具有逻辑错误,得到错误的运行结果;或者由于语义上的错误,例如用0做除数,出现运行时错误(Divisionbyzero)。这就需要检查算法重新从编辑源程序开始,直到运行结果正确。如何保证结果的正确性?需要设计出测试计划进行全面、细致而艰苦的测试工作。
六、c语言的编码规范
-
良好的格式习惯
(1) 建议一行只定义一句代码 (2) 层级之间要有严格的缩进,一个Tab键大小
-
良好的标识符命名习惯
(1) c语言中标识符只能以数字、字母、下划线(_),不能以数字开头 (2) 严格区分大小写 (3) 没有长度限制(通常不建议超过32个字符) (4) 不能使用c语言中的关键字作为标识符使用
-
良好的注释习惯
理解:注释,用于解释程序(或是语句)的作用,分为单行注释和多行注释。 (1) // : 单行注释,被注释内容为一行 (2) /* 多行注释:被注释内容为多行 */ 注意:注释内容不参与编译