学习一门编程语言,起初是学具体的语法,但是到后面我注意到不同的语言之间大多使用的一些相同的语法特性,语法特性和具体语法之间就如同”法”与”术”的关系,不同语言的语法其实是同一种”法”的不同变种实现。
在学习一个新的特性时,也就相当于掌握一种新的工具,为什么刚学习的时候觉得难,往往就是因为这种工具中包含了一些全新、以前未曾见过的概念,一旦我们理解和掌握之后,这一类的工具也就不会再有难度了。
在这里总结一下 C语言 中包含的所有语法特性及基础概念。
基础
面向过程
“面向过程” 是一种以过程为中心的编程思想。它考虑的是实际地实现。拿开门为例,“面向过程”的写法大概是 走到门前,旋下把手,往外推门。而“面向对象”则是以对象为中心,还是开门,“面向对象”会先构建一个门的对象,里面包含了门的属性和方法,属性如材料、样式,方法则为开门、关门,使用时直接调用即可,当然其中的封装方式任是“面向过程”的。所以面向过程是一种基础的思想,而面向对象的主要特性在于类、封装、继承。头文件
一般而言,每个C++/C程序通常由头文件(header files)和定义文件(definition files)组成。头文件作为一种包含功能函数、数据接口声明的载体文件,主要用于保存程序的声明(declaration),而定义文件用于保存程序的实现 (implementation)。宏定义
允许重定义数据名称或数据类型别名。注释
如同在古文的学习中的注释一样,用于在源代码中解释代码的功用,可以增强程序的可读性,可维护性,或者用于在源代码中处理不需运行的代码段,来调试程序的功能执行。输入/输出
标准输出为终端窗口,标准输入为键盘。变量、数据类型
C使用需要提前声明的变量,数据类型则标识变量的存储和计算类型。变量作用域
作用于表示变量在哪些位置可以访问。枚举类型
提供了一种枚举的数据类型。结构体
提供了一种可混合多种数据类型的数据类型。顺序、循环、分支
这3种执行结构,则包含了所有的程序运行情景。指针
显示化了地址的概念,将所有的数据操作转换为磁盘字段操作。函数、传参
函数使程序模块化、结构化,提供了可复用的调用模块。
传参包含了传入、传回。函数指针
将函数视为变量,提供了函数模块的动态调用。
高级
读和写文件
读写磁盘中的文件,更改文件属性。分文件(static)
使用不同文件可表达面向对象中的类函数、数据封装的概念。编译
字节代码转化成目标可执行所要的步骤,大致包括 语义分析,汇编,CPU指令 等几个阶段。链接
包含了动态库、静态库的概念,属于编译中的一步。堆、栈
运行程序在系统资源的分配情况。