1:函数特点
(1):定义函数是参数为形参,主函数调用时为实参
(2):形参和实参的特点
1) 形参变量只有在函数被调用时才会分配内存,调用结束后,立刻释放内存,
所以形参变量只有在函数内部有效,不能在函数外部使用。
2) 实参可以是常量、变量、表达式、函数等,无论实参是何种类型的数据,
在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参,
所以应该提前用赋值、输入等办法使实参获得确定值。
3) 实参和形参在数量上、类型上、顺序上必须严格一致,
否则会发生“类型不匹配”的错误。当然,如果能够进行自动类型转换,
或者进行了强制类型转换,那么实参类型也可以不同于形参类型。
4) 函数调用中发生的数据传递是单向的,只能把实参的值传递给形参,
而不能把形参的值反向地传递给实参;换句话说,一旦完成数据的传递,
实参和形参就再也没有瓜葛了,所以,在函数调用过程中,形参的值发生改变并不会影响实参。
代码实例
1:有返回值的为int型的函数
输出是四个数的最大值
#include<stdio.h>
int fun(int a,int b)
{
return(a>b?a:b);
}
int main()
{
int a,b,c,d,max;
scanf("%d %d %d %d",&a,&b,&c,&d);
max=(fun(a,b),fun(c,d));
printf("max=%d\n",max);
return 0;
}
调试结果
2:无返回值的为void型
例题:输入一个数 n 判断之后并输出如果n是素数 输出包含它和它之前的素数,否则输出之前的素数
#include<stdio.h>
void fun ()
{
int i,j,n,flag;
scanf("%d",&n);
for(i=2;i<=n;i++)
{
flag=1;
for(j=2;j<=i/2;j++)
{
if(i%j==0)
{
flag=0;break;
}
}
if(flag==1)
{
printf("%d\n",i);
}
}
}
int main()
{
fun();
return 0;
}
调试结果
函数就复习到这,,,,,,,