C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。
C语言是一门面向过程的计算机编程语言,与C++、Java等面向对象编程语言有所不同,它既有高级语言的特点,又具有汇编语言的特点。。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C语言描述问题比汇编语言迅速、工作量小、可读性好、易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编语言代码生成的目标程序效率低10%-20%。因此,C语言可以编写系统软件。
C语言诞生于美国的贝尔实验室,由丹尼斯·里奇(Dennis MacAlistair Ritchie)以肯·汤普森(Kenneth Lane Thompson)设计的B语言为基础发展而来,在它的主体设计完成后,汤普逊和里奇用它完全重写了UNIX,且随着UNIX的发展,c语言也得到了不断的完善。为了利于C语言的全面推广,许多专家学者和硬件厂商联合组成了C语言标准委员会,并在之后的1989年,诞生了第一个完备的C标准,简称“C89”,也就是“ANSI C”,截至2020年,最新的C语言标准为2018年6月发布的“C18”。
C语言之所以命名为C,是因为C语言源自Ken Thompson发明的B语言,而B语言则源自BCPL语言。
C语言的特点:
- 代码量小
- 执行速度快
- 功能强大
- 编程自由
为什么学习C语言?
- 是学习数据结构的基石
- 是程序设计的必备技能
- 考研中算法题往往需要,通常使用 C 语言实现
C语言程序举例:
1 2 3 4 5 6 7 8 9 |
#include <stdio.h> //编译预处理指令 int main() //主程序的入口 { //这是第一个 C 语言代码 这是注释 printf("hello world\n"); //标准输出语句 return 0; //函数执行完毕时的返回值 } |
代码分析:
- include
#include 的意思是头文件包使用 C 语言库函数需要提前包含库函数对应的头文件,如 这里使用了 printf()函数,需要包含 stdio.h 头文件,#include代表包含这个头文件。
注意:#include<>和#include “”的区别:<>通常是包含系统的头文件(标准头文件),””通常是包含自定义头文件。
- main 函数
main 函数是 C 语言程序的入口,程序是从 main 函数开始执行一个完整的 C 语言程序,是有且只能有一个 main()函数。
- {} 代码块
{}叫代码块,一个代码块内部可以有一条或者多条语句。
C 语言每句可执行代码都是”;”分号结尾。
所有的#开头的行,都代表预编译指令,预编译指令行结尾是没有分号的。
所有的可执行语句必须是在代码块里面。
- 注释
//叫行注释,注释的内容编译器是忽略的,注释主要的作用是在代码中加一些说明和解释,这样有利于代码的阅读。
/* */叫块注释
- print 函数
printf 是 C 语言库函数,功能是向标准输出设备输出一个字符。
printf(“hello world\n”);//\n 的意思是回车换行。
- return 语句
return 代表函数执行完毕。
如果 main 定义的时候前面是 int,那么 return 后面就需要写一个整数;如果 main 定义的时候前面是 void,那么 return 后面什么也不需要写。
在 main 函数中 return 0 代表程序执行成功,return -1 代表程序执行失败。
int main()和 void main()在 C 语言中是一样的,但 C++只接受 int main 这种定义方式。
C语言编译步骤:
- 预处理:宏定义展开、头文件展开、条件编译等,同时将代码中的注释删除。
- 编译:检查语法,将预处理后文件编译生成汇编文件。
- 汇编:将汇编文件生成目标文件(二进制文件)。
- 链接:C 语言编写的程序是需要依赖各种库的,所以编译之后要把库链接到最终的可执行程序中去。