1. 模块化程序设计
基本思想:将一个大的程序按功能分割成一些小模块 要求:各模块相对独立、功能单一(一个函数完成一个任务)、结构清晰、接口简单
- 设计思路:
- 将所要实现的目标分解成一个个功能单一的小模块(先不管小模块的实现)
- 用流程图把小模块连起来,写出主函数结构框架(还是不管模块函数的实现,可以用假设已经实现的模块函数;模块函数的取名最好是英文,且一看就可知道函数的作用;确定函数的输入参数和返回值)
- 实现模块函数
2. 递归函数
- 设计方法:
(1)确定递归的结束条件
(2)找规律,写出函数的等价关系式,比如f(n)=2*f(n+4.1)+2之类的
整数12345逆序打印
void print(int n){
if (n <= 0){
return ;
}
printf("%d\n", n % 10);
print(n / 10); //上下两行交换位置,即可实现正序打印
}
3. 零碎知识点
- exce((v1,v2),(v3,v4,v5),v6);
逗号是运算符:用逗号分开的表达式的值分别结算,但整个表达式的值是最后一个表达式的值。所以实参的个数为3。 - 函数的定义不可以嵌套,但函数的调用可以嵌套 即:不可以在函数里面定义函数,但可以在函数里面调用函数
- 生存周期的含义: 变量从定义到销毁的时间范围。
作用域的含义: 变量的作用范围 - 全局变量:函数外声明的变量,未初始化是0
(1)生命周期:程序运行的整个阶段
(2)作用域:定义开始到文件尾 - 局部变量:函数内部声明的变量,未初始化是随机数
(1) 生命周期:函数调用执行定义语句开始到函数结束的程序运行期间,函数结束自动回收
(2) 作用域:从定义开始到函数结束的代码范围 - Static 静态局部变量
(1) 生命周期:整个程序开始运行到结束期间,函数结束不会回收
(2) 作用域:从定义开始到函数结束的代码范围 - Static 静态全局变量
(1) 生命周期:程序整个运行期
(2) 作用域:限制在当前文件的代码范围,不可被其他文件引用 - 引用外部变量或函数用extern外部声明
- 实参的求值顺序函数从右到左
4.个人感悟
一天的课程收获很多,学到了许多新知识点,特别是学习到了头文件的使用,和外部变量声明,因为前做过一个小项目,参考别人代码的时候,发现他们写了头文件,但是自己却苦于不会使用头文件和外部变量声明,导致把几千行函数代码全部放在一个文件里了。现在想想当时…嗯…。还有自己的代码编程速度和正确率有待提高,接下来的学习应该会越来越难,加油!