c\c++中的形参与实参

1、值传递

    实参是变量,表达式等值。

    find(int x){}

    y= find(z);

   上面的例子中,z是实参,x是形参。x变z不变。

   在值传递过程中,实参和形参位于内存中两个不同地址中,实参先自己复制一次拷贝,再把拷贝复制给形参。所以,在值传递过程中,形参的变化不会对实参有任何的影响。

2、地址传递(也称引用传递)

   实参是指针。

   在函数调用的时候,实参传递给你的是指针地址,地址一样也就意味着实参和形参是一样的,当你的形参发生改变时,实参也会发生改变。

    find(int  &x){}

    y= find(z);

    上面的例子中,z是实参,x是形参。z随x而改变。

3、const引用传递

    find(const int  &x){}

    y= find(z);

    上面的例子中,z是实参,x是形参。z不随x而改变。

    有人就会问了,你这样做不是和值传递一样的么?NO!

    仔细观察就会发现,在值传递中要进行两次拷贝,浪费内存资源是相当可耻的,const的出现有效避免了这种情况的出现,只需拷贝一次就够了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
函数的形参实参是函数调用过程的两个概念。 形参是在函数定义时定义的参数,它是函数内部使用的占位符。形参可以在函数定义时指定,用于接收传递给函数的实际参数值。形参是函数定义的一部分,它的作用域仅限于函数内部,函数外部无法访问。 实参是在函数调用时实际传递给函数的参数值。实参可以是常量、变量、表达式或函数等。实参的值可以在函数调用时指定,在函数内部可以通过形参使用实参的数值。实参可以是任意类型的数据。 形参实参之间的关系是通过函数调用来建立的。当调用函数时,实参的值被传递给形参,形成一一对应关系。形参将使用实参的数值执行函数内部的操作。 形参实参之间的区别主要有以下几点: 1. 定义位置不同:形参是在函数定义时指定的参数,实参是在函数调用时传递的参数。 2. 作用范围不同:形参的作用范围仅限于函数内部,而实参的作用范围可以是函数内部和外部。 3. 类型限制不同:形参可以指定特定类型或不限制类型,而实参必须与形参的类型匹配。 4. 值传递方式不同:对于值类型的形参,默认情况下是按值传递的,即在函数调用时创建形参的副本;而对于引用类型的形参,默认情况下是按引用传递的,即实参形参指向同一个内存地址。 总之,形参是函数定义时声明的占位符,实参是函数调用时传递的具体数值。通过函数调用,实参的值被传递给形参,从而实现函数的功能。形参实参是函数输入和输出的桥梁。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值