<C++学习十八>C++参数传递的三种方式

摘要: 本篇博客仅作为笔记,如有侵权,请联系,立即删除(网上找博客学习,然后手记笔记,因纸质笔记不便保存,所以保存到网络笔记)。

  一般来说C++参数传递有三种方式:值传递、指针传递、引用传递。

一、值传递

  值传递是最常见的一种参数传递方式,但是对初学者来说也最容易出错。

#include<iostream>
using namespace std;
void fun(){
    int tmp;
    tmp = a;
    a = b;
    b = tmp;          
}
void main(){
    int m,n;
    m = 1;
    n = 1;
    fun(m,n);
    cout << m << " " << n << endl; //输出1、2
}

  值传递只传m和n的副本,交换函数并没有体现出来。

二、指针传递

  使用指针传递需要先了解一下指针的相关概念。

#include<iostream>
using namespace std;
void fun(int *x){
    *x += 10;
}
void main(){
    int n = 10;
    fun(&n);
    cout << n << endl;    //输出结果为10    
}

  fun()函数体内的x是指向外部变量n的指针,改变指针的内容将导致n的值改变,所以n的值成了10.

三、引用传递

  引用相当于别名(绰号)。

#include<iostream>
using namespace std;
void main(){
    int x;
    int &y = x;
    y = 99;
    cout << x << endl;   //输出结果为99  
}

  程序中&y = x应当理解为y具有x的地址,即x与y具有相同的地址,地址相同了当然内容也相同,所以y = x = 99。

比较:对比参数的三种传递方式,可以发现“引用传递”和“指针传递”的性质一样。引用传递可以做的任何事指针也能够做到,因为指针能够毫无约束地操作内存中的东西,这种强大的功能背后也必将隐藏着巨大的危险,所以要谨慎运用。

转载于:https://www.cnblogs.com/daisy-996/p/10243317.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值