一 函数的参数
1 形式参数
定义
函数的形式参数指函数名括号后的变量
为什么叫形式参数
因为它只有被函数调用的时候才会实例化(开辟内存单元)
存在范围
当函数调用完毕之后就自动销毁了 所以形式参数只在函数中有效
2 实际参数
定义
真是传递给函数的参数 叫做形式参数
类型
必须是常量 变量 常量表达式 函数等
无论是什么类型在函数调用的时候实际参数都必须有一个确定的值
二 函数的声明与定义
注意点
如果函数是在后面定义的 那么如果想在前面使用就必须声明一下函数
int main() { int a = 3; int b = 5; int s = Add(a, b); printf("%d", s); return 0; } int Add(int x, int y) { return x + y; }
例如以上代码 想要使用的话就必须在前面声明一下这个函数
int Add(int, int); • 1
记得要在后面加上分号
声明头文件
头文件中放什么?
存放函数的声明 类型的定义 头文件的包含
自己写的头文件和系统头文件引用有什么区别?
自己写的头文件要用双引号引用 系统的头文件使用<>引用
三 初识递归
写一个最简单的递归函数
int main() { printf("1\n"); main(); return 0; }
main()函数不停调用自身的过程 这就是一个简单的递归
使用递归函数来实现按照顺序打印1234
题目分析:递归的主要思想就是大事化小
要想顺序打印1234 那么可以想象成打印 123 加上一个4
又可以想象成打印12 加上一个3 一个4
又可以想象成打印1 加上一个2 一个3 一个4
了解到这些之后呢我们就可以开始着手写代码了
void print(int n) { if (n>9) { print(n / 10); printf("%d ", n % 10); } else { printf("%d ", n % 10); } } int main() { int n = 1234; print(n); return 0; }
实现代码如上
解释原理如下
在文章的最后由上面的代码和图引申出递归的两个条件
1 要有限制条件 在限制条件达到时候停止“递” 开始“归”
2 每次递归要不断的接近限制条件