小伙伴们都学到函数了吗?今天的基础系类,我们一起来了解了解函数的一些内容吧!
目录
1,定义:
2, 分 类:
3,函数的参数
4,函数的调用
1,传值调用
2,传址调用
3,函数的嵌套调用和链式访问
5,函数声明,定义
1,函数的声明
2,函数的定义
首先当然是先上定义: C语言函数是一种函数,用来编译C语言,一般包括字符库函数,数学函数,目录函数,进程函数,诊断函数,操作函数等。
具体大家想看的话,可以去看看:
C语言函数_百度百科 (baidu.com)d
但是这里我给出维基百科中的定义:
在计算机科学与技术中,子程序是一个大型程序中的某部分代码,由一个或多个语句块组成,它负责完成某项特定任务,而相较于其他代码,具备相对独立性。
一般会有输入参数,并有返回值,提供对过程的封装和细节的隐藏。这些代码通常被集成为软件库。
包括,库函数和自定义函数。
像我们常使用的一些函数如printf,scanf都是一些库函数,而我们自己写的一些函数叫自定义函数
库函数是一些我们经常使用的函数,被c语言提供。而我们自己设计的函数则更能给我们发挥的空间,让我们更便利地解决问题,开发。
很多时候我们写一些代码实现功能时,都会封装成函数,这样可移植性高,当其他人想使用的,就可以直接拿去使用。(因为这块代码封装成函数时,会尽量做到只处理一个功能,那么就可以直接让其他人拿去使用)
函数一般包括,函数返回类型,函数名,函数参数,函数体等。
函数的参数包括实际参数和形式参数。
实际参数,是真实传递给函数的参数,可以是常量,变量,表达式,函数等。无论实参是何种类型,他们的都必须有确定的值。
形式参数,是指函数名后面括号中的变量,不调用函数时是不开辟空间的,只有在被函数调用的过程中,才会真实在内存中开辟空间,形参只在函数中有效。
这个只是将实参的值传给形参,然后在函数中对形参进行操作,对实参没有影响。
重点来了:形参相当于实参的一份临时拷贝。
这类调用会将实参的地址交给形参,在配合解引用符*的使用,会让形参可以影响到实参
最简单的一个例子就是:调换两个变量的值
像这类传值调用,是没有办法交换变量的值的:
#include<stdio.h> void change(int i, int j) { int tmp = 0; tmp = i; i = j; j = tmp; } int main() { int i = 10; int j = 5; change(i, j); printf("%d %d", i, j); return 0; }
而使用传址调用会涉及到后面指针的知识,但是是可以交换的。
#include<stdio.h> void change(int* i, int* j) { int tmp = 0; tmp = *i; *i = *j; *j = tmp; } int main() { int i = 10; int j = 5; change(&i, &j); printf("%d %d", i, j); return 0; }
这就是传值和传址的区别了。
嵌套调用是,在函数中再次调用函数(递归就是用这个原理)
#include<stdio.h> void print2() { printf("hello"); } void print1() { print2(); } int main() { print1(); return 0; }
链式访问是值,用一个函数的返回值作为另一个函数的参数
#include<stdio.h> int main() { printf("%d",printf("hello\n")); return 0; }
这里会打印hello和6,就printf的函数返回值作为另一个printf函数的参数。
1,就是告诉编译器,有一个函数叫什么,参数是什么,返回类型是什么。但是具体是不是存在,无关紧要。
2,函数的声明一般出现在函数的使用之前。要满足先声明后使用。。
3,函数的声明一般放在头文件中。
函数的定义是指函数的具体实现,交待函数功能的实现。
具体可以看看下面的代码
#include<stdio.h> int main() { void print1();//h函数声明 void print2(); print1(); return 0; } void print2()//函数定义 { printf("hello"); } void print1() { print2(); }
如果将函数声明删去,程序会报错,大家可以去试试。
函数递归的部分内容多,有一些很经典的题目,在下个一篇博客再和大家分享吧。今天这篇博客就到这里结束啦。码字不易,看到这里不妨给博主点个关注,点个赞吧。我会坚持更新的。
如有错误,请联系修改。有什么建议,或者大家想看些其他什么东西,也可以在评论区告诉博主,虽然博主不一定会,但是可以学。学完之后在和大家分享,交流,共同进步。
参考资料:
C语言函数_百度百科 (baidu.com)