函数(定义函数,调用函数)

一,定义函数
1.定义函数的内容
(1)指定函数的名字,以便以后按名调用
(2)指定函数的类型,即函数返回值的类型
(3)指定函数的参数的名字和类型,以便在调用函数时向它们传递数据。对无参函数不需要这项。
(4)指定函数的功能。在函数体中解决。
2.定义无参函数
例:void print_star( ) //定义print_star(函数名)函数
{
printf("***"); //函数体(包含声明部分和语句部分)
}
void为类型名,指定函数的类型,即指定函数带回来的值的类型;void类型表示没有函数值。
3.定义有参函数
例:int max(int x,int y) //类型名 函数名(形式参数表列)
{
int z; //声明部分
z=x>y?x:y; //执行语句部分
return 0;
}
花括号内是函数体
4.定义空函数
例:void dummy( ) //类型名 函数名( )
{ } //{ }
函数体是空的,调用此函数时,什么工作也不做,没有任何实际作用。
在编写程序的开始阶段,可以在将来准备扩充功能的地方写上一个空函数。

二,调用函数
print_star( ); //调用无参函数
c=max(a,b); //调用有参函数
1.函数调用的一般形式为:函数名(实参表列)
调用无参函数,则“实参函数”可省,括号不能省。
调用方式:
(1)函数调用语句:把函数调用单独作为一个语句,不要求函数带回值。
(2)函数表达式:如"c=max(a,b);",max(a,b)是一个函数调用,它是赋值表达式中的一部分,要求函数带回一个确定的值以参加表达式的运算。例:
c=2*max(a,b);
(3)函数参数:函数调用作为另一个函数调用时的实参。
例:printf("%d",max(a,b));
也是把max(a,b)作为printf函数的一个参数。
2.函数调用时的数据传递
(1)调用有参函数时
在定义函数时函数名后面括号中的变量名称为"形式参数"。
在主调函数中调用一个函数时,函数名后面括号中的参数称为"实际参数"。
(2)实参和形参间的数据传递
例:输入两个整数,要求输出其中值较大者。要求用函数找到大数。
#include <stdio.h>
int main()
{
int max(int x,int y);//对max函数的声明
int a,b,c;
printf(“please enter two integer numbers:”);//提示输入数据
scanf("%d,%d",&a,&b);//输入两个整数
c=max(a,b);//调用max函数,有两个实参。大数赋给变量c
printf(“max is %d\n”,c);//输出大数c
return 0;
}
int max(int x,int y) //定义max函数,有两个参数
{
int z; //定义临时变量z
z=x>y? x:y; //把x和y中的大者赋给z
return(z); //把z作为max函数的值带回main函数
}
注意:
实参可以是常量,变量或表达式,但要求它们有确定的值。在调用时将实参的值赋给形参。
实参与形参应相同或赋值兼容。

猜你喜欢

转载自blog.csdn.net/qq_43597158/article/details/84590340