您的位置:首页 > 其它

函数的参数与返回值

2018-03-22 18:00 281 查看

函数的参数

实参,形参,虚参,实际参数

1,有参函数在调用时,主调函数和被调函数之间有数据传递,主调函数传递数据给被调函数。主调函数传递来的数据称为实际参数,简称实参
2,定义函数时,函数名后的参数称为形式参数,简称形参。(在定义函数时,系统并不给形参分配储存单元,形参也没有具体的数值,所以称是形参,也叫做虚参
3,实参,形参共同作用是实现数据的传送
4,调用函数时,实参有确定的值,所以称它是实际参数,可以是变量,常量,表达式等“确定的值”
实参和形参之间的关系:
【1】实参的个数 ,类型应该和形参的个数和类型一致。调用函数时,系统给形参分配存储单元,并且把实参的数值传递给形参。
【2】实参和形参分别属于主调函数和被调函数,具有不同的内存单元。所以,在函数调用时形参发生改变,不会影响到实参。
【3】C语言中实参和形参的结合采取的是“单向值传递”方式,只有实参传递参数给形参,形参不回传参数给实参。
实参和形参的特点:

1.形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只有在函数内部有效。函数调用结束返回主调函数后则不能再使用该形参变量。

2.实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使实参获得确定值。

3.实参和形参在数量上,类型上,顺序上应严格一致,否则会发生类型不匹配”的错误。

4.函数调用中发生的数据传送是单向的。即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。因此在函数调用过程中,形参的值发生改变,而实参中的值不会变化。
实参的形参例子:

#include<stdio.h>

void main()/*计算两数相加*/
{
    int a=5,b=4,c;
    int add(int m,int n);/*对函数进行声明*/
    c=add(a,b);/*函数调用*/
    printf("%d",c);/*输出结果*/
    getchar();
}

int add(int m,int n)
{
    int sum;
    sum=m+n;/*计算两数相加*/
    return sum;/*返回函数值*/
}
程序说明;
程序中定义了一个“ int add(int m,int n) ”函数,函数有两个形参,定义返回类型为整型。参数是用来传递值用的。定义函数时在括号中定义的变量叫形参(形式参数),如“int add(int m,int n)”里面的“m”和“n”,在调用函数时提供给函数的变量叫实参(实际参数),如“c=add(a,b);”里的“a”和“b”,当调用函数时,程序将 a 的值传递给 m(m=a),将 b 的值传递给 n (n=b),然后运行函数add(),即将 m 和 n 两数相加并赋值给 sum 。然后返回sum 的值给 C 。   
   
    函数是用来完成一些功能的程序段,所以函数执行完之后要有所作用,要么就完成输入、输出等动作,要么就进行一些计算,所以要求它执行完之后能得到一些结果,而结果就用返回值来得到(return 语句),返回的结果的数据可能是整型,可能是字符型…这就需要你来定义(如上面的 add() 函数被我定义为整型,因为我要得到的值是整型——变量"c"为整型),这就是函数的返回类型。return 语句中的变量(sum)的类型必须和你定义的返回类型(int add(int m,int n)
)一至。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  薇薇软件智能化