C语言-函数的嵌套调用,链式访问,函数的声明和函数的定义
以下是我初学C语言的笔记记录,欢迎在评论区留言补充
一,函数的嵌套
一个函数嵌套另一个函数的调用
【注意】
(1)不能在一个函数中再定义一个函数,只能在一个函数中调用一个函数;
(2)函数的位置都是平等的,所以可以嵌套调用,但是不能嵌套定义
//函数的嵌套调用 #include<stdio.h> void test1() {printf("hhh\n");} void test2() {int i = 0;for (i = 1; i <= 3; i++){test1(); //函数的调用} } int main() {test2();return 0; }
二,函数的链式访问
(1)什么是链式访问?
链式访问像一个串条,将函数串起来,需要用到返回值,返回值给到一个函数;
一个函数的返回值作为另一个函数的参数
为什么结果是4321?
【毫无疑问,橙色输出结果为43,即43以%d的形式打印,而绿色表示的含义是将橙色的结果以%d打印,即printf的返回值以%d的形式打印,而printf的返回值为输出内容的总个数,所以,绿色部分输出为2,同理,蓝色输出为1】
三,函数的声明和定义
(1)什么是函数的声明,什么时候用它?
一般情况下,自定义函数写在main函数前,而且编译器是从上到下进行扫描,进行执行代码的,如果把自定义函数写在main函数的后面,那么,在调用函数,并且程序执行的时候,就不知道自定义函数的位置在哪里,虽然后面可以扫描到,但是会出现警告,这个时候,就用到了函数的声明【函数的返回类型,函数名,形参类型】写在main函数前就可以;
#include<stdio.h> int Add(int, int);//函数的声明 //返回值类型,函数名,形参类型,至于x,y写不写上都可以 int main() {int i = 0;int j = 0;int sum = 0;sum = Add(3, 4);printf("%d", sum);return 0; }int Add(int x, int y) {return x + y; }
(2)函数的声明格式
只需要有返回值类型,函数名,形参类型
(3)函数的声明可以放在头文件中
一来,可以模块化方便管理,二来,可以对自己写的函数代码进行了一个保护;
将函数声明放在头文件中,其实相当于是将函数声明拷贝一份在头文件中
(4)函数的声明注意点
告诉我有这么一个函数,但是声明是声明,具体有没有这么一个函数,关键是,是否进行了函数的定义
(5)什么是函数的定义?
函数的定义就是创建一个自定义函数;
比如下面的Add函数
#include<stdio.h> int Add(int, int);//函数的声明 //返回值类型,函数名,形参类型,至于x,y写不写上都可以 int main() {int i = 0;int j = 0;int sum = 0;sum = Add(3, 4);printf("%d", sum);return 0; }//函数的定义 int Add(int x, int y) {return x + y; }
【琐碎记录】
* 函数不写返回值的时候,默认返回类型是int;
* 本质上main函数是有参数的,且有三个参数;
* 自定义的头文件要用“”;库函数的头文件要用<>;
* 先声明后使用 ;