扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
将代码段封装成函数的过程叫做函数定义。
站在用户的角度思考问题,与客户深入沟通,找到南县网站设计与南县网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站设计、做网站、企业官网、英文网站、手机端网站、网站推广、申请域名、雅安服务器托管、企业邮箱。业务覆盖南县地区。
函数可以重复使用的代码,用来独立地完成某个功能,它可以接收用户传递的数据,也可以不接收。接收用户数据的函数在定义时要指明参数,不接收用户数据的不需要指明,根据这一点可以将函数分为有参函数和无参函数。
相关概念:
函数不能嵌套定义,main 也是一个函数定义,所以要将 sum 放在 main 外面。函数必须先定义后使用,所以 sum 要放在 main 前面。
函数定义时给出的参数称为形式参数,简称形参;函数调用时给出的参数(也就是传递的数据)称为实际参数,简称实参。函数调用时,将实参的值传递给形参,相当于一次赋值操作。
原则上讲,实参的类型和数目要与形参保持一致。如果能够进行自动类型转换,或者进行了强制类型转换,那么实参类型也可以不同于形参类型,例如将 int 类型的实参传递给 float 类型的形参就会发生自动类型转换。
unsigned int Fun_a(int,int); //声明
unsigned int Fun_a(int aa,int bb) //定义
{
return (aa+bb);
}
声明和定义是不一样的,定义的时候是要有参数名的,声明的时候可以去掉参数名。
形参和实参其实没有实质区别,都是值传递。
形式上你可以发现实参是可以在其他函数里面修改的~
形参和实参最大的区别就是形参能够虽然也能够进行值得修改,但是只能够在函数内部,而实参是可以在全局范围内修改变量的值~这里需要提的是C语言有全局和局部的概念~形参就是仅仅的值传递,而当你的值传递到函数内部的时候,这个时候函数内修改的参数的地址已经不是主函数的变量地址了~也就是是说函数内对数值的任何修改都对主函数的变量没有任何影响
与之相对的实参,一般是通过指针的形式,它虽然也是传递值,但是这个值是地址,所以呢,你可以发现,地址传过去了,那么就可以像一根指针一样远程操纵者主函数内部的变量。
下面这个例子我都写好了,记住是VisualStudioC++的运行环境啊~别用TC了~
#includestdio.h
int main()
{
void max1(int *a,int *b);//实参例子
void max2(int c,int d);//形参例子
int *x,*y;
int e,f;char k;
printf("请输入两个数字,格式为:”数字,数字“(不包括引号)");
scanf("%d,%d",e,f);
printf("请输入你要演示的例子:\n 1.实参例子 \n 2.形参例子");
getchar(k);
switch(k)
{
case'1':{
x=e;y=f;max1(x,y);printf("这是在主函数输出的数据:e=%d,f=%d",e,f);
}
case'2':{max2(e,f);
printf("这是在主函数输出的数据:e=%d,f=%d",e,f);}
default:printf("error\n");
}
return 1;
}
void max1(int *a,int *b);//实参例子
{
int c;
if(*a*b)
{
c=*a;*a=*b;*b=c;
}
printf("这是在max1函数输出的数据:e=%d,f=%d",a,b);
}
void max2(int c,int d);//形参例子
{
int g;
if(cd)
{
g=c;c=d;d=g;
}
printf("这是在max2函数输出的数据:e=%d,f=%d",a,b);
}
顾名思义,形参只是为了塑造一个函数的外形.比如max(x,y),这里x和y我们叫它形参.而我们有两个数a=10,b=8,把a和b赋值给max函数的话,就可以比较a和b的最大值,那么a,b在这里就叫做实参,是实际输入的值.
你自己复制的不是很清楚吗,解释的很好.
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流