C++形式参数与实际参数,参数值的传递

在C++中,函数参数分为形式参数(也称为形参)和实际参数(也称为实参)。理解这两者的区别以及参数值的传递方式对于编写有效的C++程序至关重要。

形式参数(形参)

形式参数是函数定义中列出的参数,它们代表了函数将接收的数据的占位符。在函数被调用之前,形参不会被分配内存或初始化。它们仅仅是在函数体内部使用的变量名,用于接收调用函数时传递的实际参数的值。

实际参数(实参)

实际参数是调用函数时传递给函数的数据。它们可以是常量、变量、表达式或另一个函数的返回值。在函数调用时,实参的值被传递给相应的形参,然后函数体内部的代码就可以使用这些值了。

参数值的传递

在C++中,参数值的传递方式主要有两种:值传递和引用传递(包括指针传递,它实际上是一种特殊类型的引用传递)。

值传递

在值传递中,实参的值被复制给形参。这意味着在函数内部对形参的任何修改都不会影响到原始的实参。函数操作的是实参的一个副本。

void modifyValue(int x) {  
    x = 10; // 修改形参x的值,但这不会影响实参  
}  
  
int main() {  
    int a = 5;  
    modifyValue(a); // 调用函数,a的值被复制给x  
    cout << a; // 输出: 5,a的值没有改变  
    return 0;  
}
引用传递

在引用传递中,实参的引用(而不是值)被传递给形参。这意味着形参和实参指向同一个内存地址,因此,在函数内部对形参的任何修改都会影响到实参。

void modifyReference(int& x) {  
    x = 10; // 修改形参x的值,这会影响实参  
}  
  
int main() {  
    int a = 5;  
    modifyReference(a); // 调用函数,a的引用被传递给x  
    cout << a; // 输出: 10,a的值被修改了  
    return 0;  
}
指针传递

指针传递是引用传递的一种特殊形式,其中实参的地址(即指向实参的指针)被传递给形参。形参是一个指针,它指向实参的地址。因此,通过解引用指针,函数可以访问并修改实参的值。

void modifyPointer(int* x) {  
    *x = 10; // 修改指针x指向的值,即实参的值  
}  
  
int main() {  
    int a = 5;  
    modifyPointer(&a); // 调用函数,a的地址被传递给x  
    cout << a; // 输出: 10,a的值被修改了  
    return 0;  
}

总结
形式参数是函数定义中的参数,它们用于接收调用函数时传递的实际参数的值。
实际参数是调用函数时传递给函数的数据。
值传递复制实参的值给形参,函数内部对形参的修改不会影响到实参。
引用传递(包括指针传递)传递实参的引用(或地址)给形参,函数内部对形参的修改会影响到实参。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值