来围观,C语言中函数的定义,声明,调用
前言
函数在任何语言中都必不可少,我现在用几个简单的实例来和大家分享关于函数的定义,声明,调用的辨认和使用。(初学笔记,大佬们多多指教)
- 函数的声明:在使用函数之前应该声明,事先通知编译器该函数的类型(一个声明即是描述一个函数的接口。);声明至少应指明函数返回值的类型,如下例所示:
int max();//这里声明max()是一个无参数函数,其返回值的类型是是int类型。
- 函数的定义:一个大的程序一般应分为若干个程序模块,每个程序模块实现一个特定功能,这些模块称为子程序,在子程序用函数实现。如下例所示:
int max(int a,int b)
{ int z;
z=a>b?a:b;
return z;//这里定义了一个用来比较大小的子函数,a和b是形参,以z为返回值连接主函数。
- 函数的调用:函数分为有参函数和无参函数。参数分为形参和实参。形参在子函数内,实参在主函数内。
下面我用求两个数的最大值来讲一下
代码1:
#include<stdio.h>
int max(int a,int b)//函数的定义
{
int c;
c=a>b?a:b;
return c;
}
int main()
{
int a,b,c;//a,b皆为实参
scanf("%d%d",&a,&b);
c=max(a,b);//函数的调用
printf("max=%d\n",c);
}
代码2:
#include<stdio.h>
int max(int a,int b)//函数的定义
{
int c;
c=a>b?a:b;
return c;
}
int main()
{
int a,b;//a,b皆为实参
scanf("%d%d",&a,&b);
printf("max=%d\n",max(a,b));//这里采用的是函数的参数化调用
}
不在主函数里直接调用max,而是将它参数化,运行结果相同。
函数1调用的三种传递方式:
- 按值传递
——首先计算出实参表达式的值,给对应的形参变量分配空间;
——把以求的实参表达式的值一一存入到形参变量分配的存储的空间中,成为形参变量的初值,供被调用函数执行时使用。(注意:被调用函数本身不对实参进行操作!) - 地址传递
如果在函数定义是将形参说明成指针,调用函数就需要指定地址值的形参。这时函数传递方式就是按地址传递方式传递。
按值传递形参指针和实参指针指向同一地址。因此,被调用函数中对形参指针所指向的地址中内容的任何改变都会影响到实参。 - 引用传递
如果以引用为参数,既可以使得对任何操作都能改变相应的数据,又使得函数调用显得方便自然。引用传递方式是在函数定义形参之前加上引用运算符"&"。
函数调用的五步骤:
注意点:
- 除了常用的各种数据类型如: int,float,char等外,还有一种特殊类型即void,void型函数无返回值。
- 对于void型函数不能包含return语句,其它类型的函数至少包含一个return语句。
- *函数的形参表由一个或多个形参彼此之间用逗号隔开。也可以没有形参,但函数名后的()不能省。
The end
下次我将整理有关变量的作用域和储存方式的笔记,也将开始C里最关键的地方——指针.
多多指教哦!
Thanks