首页 > 编程语言 >C++的引用变量作为函数参数

C++的引用变量作为函数参数

时间:2023-04-14 12:23:11浏览次数:40  
标签:变量 temp int C++ 传递 函数参数 引用

一、问题引入

在C++的中新增一个特性:按引用传递变量,虽然与按传递变量的地址可以实现相同的结果,但引用有其独特的地方。

引用传递: 引用经常被用作函数参数,使得函数中的变量名成为调用程序中的变量的别名。

通过引用变量用作参数,函数将使用原始数据,而不是其副本。

二、解决过程

举例说明:

#include <iostream>

using namespace std;


void swapv(int a, int b)    // 传变量的值
{
    int temp = a;
    a = b;
    b = temp;
}
void swapp(int *a, int *b)  // 传变量的地址
{
    int temp = *a;
    *a = *b;
    *b= temp;
}
void swapq(int & a, int & b) // 传引用变量
{
    int temp = a;
    a = b;
    b = temp;
}

int main(void)
{
    int wallet1 = 120;
    int wallet2 = 50;
    cout << "source wallet1:" << wallet1 << endl;
    cout << "source wallet2:" << wallet2 << endl;
    cout << endl;

    swapv(wallet1, wallet2);
    cout << "传变量的值" << endl;
    cout << "wallet1:" << wallet1 << endl;
    cout << "wallet2:" << wallet2 << endl;
    cout << endl;

    wallet1 = 120;
    wallet2 = 50;
    swapp(&wallet1, &wallet2);
    cout << "传变量的地址" << endl;
    cout << "wallet1:" << wallet1 << endl;
    cout << "wallet2:" << wallet2 << endl;
    cout << endl;

    wallet1 = 120;
    wallet2 = 50;
    swapq(wallet1, wallet2);
    cout << "传变量" << endl;
    cout << "wallet1:" << wallet1 << endl;
    cout << "wallet2:" << wallet2 << endl;
    cout << endl;

    return 0;
}

标签:变量,temp,int,C++,传递,函数参数,引用
From: https://www.cnblogs.com/caojun97/p/17317803.html

相关文章

  • Eclipse 安装 ABAP 插件报错 Microsoft Visual C++ 2013 (x64) 快速解决
     去官网下载MicrosoftVisualC++2013(x64)安装   DownloadVisualC++RedistributablePackagesforVisualStudio2013fromOfficialMicrosoftDownloadCenter   ......
  • C++ - 虚析构和纯虚析构
    1.为什么需要虚析构函数多态使用时,如果子类中有属性开辟到堆区,那么父类指针在释放时无法调用到子类的析构代码#include<iostream>#include<stdlib.h>#include<string>usingnamespacestd;classAnimal{public: Animal() { cout<<"Animal构造函数调用!"<<e......
  • Java_获取变量的类型
    如果是对象,那么可以使用getClass().getName()方法获得该对象的类名,然,还有就是利用反射机制获取原数据类型的,这个时候如果需要确定类型, 同样的,反射机制返回值是对象,比如对于类属性的返回,是Field对象,可以 通过里面的getType().getName()获得该属性的类型名称,下面一个例子:Type ......
  • 【c&c++】strdup函数简介
    strdup函数简介收藏 用法:#include<string.h> 功能:复制字符串s  说明:返回指向被复制的字符串的指针,所需空间由malloc()分配且可以由free()释放。  举例:       //strdup.c          #include<syslib.h>     #include<string.h>      mai......
  • C/C++会员卡计费管理系统[2023-04-13]
    C/C++会员卡计费管理系统[2023-04-13]1.开发一个会员卡计费管理系统。2.新会员登记(将会员个人信息及会员卡信息进行录入);3.会员信息维护、会员等级、不同等级享受折扣信息的维护;4.会员续费。(会员出示会员卡后,管理人员根据卡号查找到该会员的信息并显示,此时可以进行续费,续费......
  • c++基础入门2
    一、数组1、概述所谓数组,就是一个集合,里面存放相同类型的数据元素特点:1、数组中的每个数据元素都是相同的数据类型2、数组是由连续的内存位置组成的2、一维数组(1)、定义方式:一维数组有中定义方式:1、数据类型数组名[数据长度];2、数据类型数组名[数据长度]={值1,值2.....};3、数据......
  • 斯坦福 UE4 C++ ActionRoguelike游戏实例教程 10.控制台变量的用法 & 静态函数库 &
    斯坦福课程UE4C++ActionRoguelike游戏实例教程0.绪论概述本文对应Lecture15,61-ConsoleVariablesfordebuggingandgamebalancing。本文将会教你如何在C++中编辑控制台变量的逻辑,通过在游戏中打开控制台,以修改控制台变量的方式来修改游戏里的各种参数;此外,还会使用自......
  • C++ // 2023/4/13
    stl**序列式容器**:强调值的排序,序列式容器中的每个元素均有固定的位置。  **关联式容器**:二叉树结构,各元素之间没有严格的物理上的顺序关系质变算法:是指运算过程中会更改区间内的元素的内容。例如拷贝,替换,删除等等非质变算法:是指运算过程中不会更改区间内的元素内容......
  • JavaScript 变量、标识符和四则运算
    JavaScript基础第二天变量什么是变量?变量由四个部分组成:1.var:声明变量的关键字2.变量名字1.变量的名字可以包含:字母,数字2.不能以数字开头3.不能使用关键字保留字比如var、if、for、列:web、_001、_number3.等于号=在js中它叫做赋值号4.值,赋值号后面的叫做值(变......
  • C++课本第三章例题
    3-2输入一个8位二进制数,将其转换为十进制数输出。1#include<iostream>2usingnamespacestd;3doublepower(doublex,intn);//函数的声明,double类型防止超出整型4intmain()5{6intnumber=0;7for(inti......