你的位置:首页 > 信息动态 > 新闻中心
信息动态
联系我们

函数初认识

2021/11/1 23:05:58

函数是什么?

函数是主函数以外的一个结构体,它可以通过我们写的语法来实现某些功能,当很多个这些功能单一的结构体一起放在主函数里,各自完成需要的功能,我们便可以编出一套很棒的程序,而不只是拘泥在main()里,只能的简单的printf功能,让程序变得更加复杂多彩~~

库函数

c语言的历史悠久,为了方便程序员们进行编译以及语言相对统一,可移植性高,于是便有了库函数的产生。

库函数是c语言中自带的实现一些功能的函数,要通过先应用对应头文件才可使用,c语言里的库函数有许多功能,很强大,但功能总是有限的。我们也要学会自己创造函数来实现,便有了自定义函数的说法。

   想要查找学习库函数,有以下三个网站:

                                 http://www.cplusplus.com/reference/

​                                 https://zh.cppreference.com/w/%E9%A6%96%E9%A1%B5

​                                 http://c.biancheng.net/ref/acos.html

自定义函数

自定义函数即为我们自己通过敲代码从而实现想要功能的函数,这些函数由我们自己创造,所以在使用时无需引用头文件,也没有头文件。


函数中的形参与实参

实参:调用时传过去的参数

可用范围:常量,变量,表达式,函数

形参:函数名后括号中的变量,被传的那个

注意!!形参只有在被调用的时候才会有内存单元,不然不存在在被调用完后自动销毁


函数的调用

传值调用:函数的形参与实参占有不同内存块,对形参修改不会影响实参

传址调用:在int* a=&a后,直接引用*a可代替a使用。才可以将函数与主函数的参数联系起来。

传址调用是一个好用的东西,看以下案例:

试着敲出以下代码:写出一个函数,做到将两个数字交换位置,做到

   printf("交换前a=%d,b=%d\n", a, b);   //输入20 10
    swap(&a, &b);
    printf("交换后a=%d,b=%d\n", a, b); //输出10 20

这样输出,但a,b的位置不改变,如果不行,继续往下领略传址调用的妙处~

我们要知道:用函数交换数字,函数里,形参只是实参的一份临时拷贝,而对实参无影响

此时主函数里开辟了两个地址来存放a,b两个数字,而在我们定义的swap函数里又开辟了两个地址来存放a,b里的数字,他们虽然数值相同,但是确实两块不同的地方,所以当我们在swap函数里交换之后,只是函数这两块地址里的数字改变,而做不到改变到主函数里面地址的数字,所以就要使用指针来解决这一问题。

void swap(int* a, int* b)
{
	int z = 0;
	z = *a;
	*a = *b;
	*b = z;
}

此时就能很好的找到主函数里a和b的地址,并且做到在a,b地址里交换数字这一操作了。