目录
函数的定义
函数头 类型 函数名 (类型 参数1,类型 参数2,... ...)
{
声明部分
函数体 执行部分
[return 表达式;]
}
//类型:为返回值的类型,如果没有,则默认int
//函数名:函数名标识符
//(类型 参数1,类型 参数2,...):形参表
long Fact (int n) //函数定义
//long 为返回值类型
//Fact 函数名说明函数的功能
//int n 为形参表,是函数的入口
{
int i; //函数内部可以定义只能自己使用的变量
long result =1;
for(i=2;i<=n;i++)
{
result *=i;
}
return result;//返回值作为函数调用表达式的值
}
void 函数名()//函数没有返回值,则用void;
//没有参数时,"()"不能省略
{ 声明语句序列
可执行语句序列
return; //return语句后面不需要任何表达式
}
void main()
{
......
}
int main()
{
......
return 0;
}
函数的调用
函数名 (实参表);
注:
1. 实参可以是常量、变量、表达式、函数等,但必须有确定的值
2.函数的实参和形参应在个数、类型和顺序上一一对应
3.对于无参函数,调用时实参表列为空,都是()不能省略
通过传值方式调用函数
/* 函数定义 */
void swap(int x, int y)
{
int temp;
temp = x; //保存 x 的值
x = y; //把 y 赋值给 x
y = temp; //把 temp 赋值给 y
return;
}
函数的声明
函数类型 函数名(类型 参数名,......);
long Fact (int n);
函数类型 函数名(类型 ,......);
long Fact (int );
例:
#include <stdio.h>
int max(int n1, int n2);// 函数声明
int main ()
{
// 定义局部变量
int a = 50;
int b = 36;
int ret;
ret = max(a, b); // 调用函数来获取最大值
printf( "Max value is : %d\n", ret );
return 0;
}
int max(int n1, int n2)
{
int result; // 声明局部变量
if (n1 > n2)
result = n1;
else
result = n2;
return result; //函数返回两个数中较大的那个数
}
实验结果如下:
参数的传递
形参:定义函数时函数名后面括号内的变量名
实参:调用函数时函数名后面括号内对应的参数
实参向形参传递数据的方式:单向的值传递
void swap(int a,int b) //参数
{
int t;
t=a;a=b;b=t;
}
void main ()
{
int x=7,y=11; //值
swap(x,y); //函数的调用
printf("x=%d,y=%d\n",x,y);
}
函数的应用
例:求两个整数中最大值的函数
#include <stdio.h>
int max(int x,int y)
{
/*函数的定义*/
int t;
t=x>y?x:y;
return t;
}
main()
{
int max(int x,int y);
/*函数的声明*/
int a,b,c;
scanf("%d",&a,&b);
c=max(a,b);
/*函数的调用*/
printf("最大值为:%d\n",c);
}
实验结果如下: