交换函数(值传递,地址传递,引用作为函数参数)

本段程序主要是完成值交换函数,包括基于值传递、基于地址传递以及引用作为函数参数三个子函数。
尤其值得关注如何把引用作为函数参数,进而实现数值交换。这一段的代码如下:

void swap_y(int &a, int &b)
{int temp = a;a = b;b = temp;
}

全部代码以及运行效果如下:可以发现,仅仅是值传递,不能使主函数内实现数值交换,其余两种可以实现。

#include <iostream>using namespace std;void swap_value(int a, int b)
{int temp = a;a = b;b = temp;
}void swap_ptr(int *a, int *b)
{int temp = *a;*a = *b;*b = temp;
}void swap_y(int &a, int &b)
{int temp = a;a = b;b = temp;
}int main(int argc, char **argv)
{int num1 = 10, num2 = 20;int x = 1, y = 2;int a = 100, b = 200;// 1 值传递cout << "值传递前:" << endl;cout << "num1 = " << num1 << endl;cout << "num2 = " << num2 << endl;swap_value(num1,num2);cout << "值传递后:" << endl;cout << "num1 = " << num1 << endl;cout << "num2 = " << num2 << endl;cout << endl;// 2 地址传递cout << "地址传递前:" << endl;cout << "x = " << x << endl;cout << "y = " << y << endl;swap_ptr(&x, &y);cout << "地址传递后:" << endl;cout << "x = " << x << endl;cout << "y = " << y << endl;cout << endl;// 3 引用cout << "引用前:" << endl;cout << "a = " << a << endl;cout << "b = " << b << endl;swap_y(a,b);cout << "引用后:" << endl;cout << "a = " << a << endl;cout << "b = " << b << endl;cout << endl;return 0;
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/640503.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

目标检测——输电电塔绝缘子数据集

引言 亲爱的读者们&#xff0c;您是否在寻找某个特定的数据集&#xff0c;用于研究或项目实践&#xff1f;欢迎您在评论区留言&#xff0c;或者通过公众号私信告诉我&#xff0c;您想要的数据集的类型主题。小编会竭尽全力为您寻找&#xff0c;并在找到后第一时间与您分享。 …

CentOS7配置固定ip

一、打开配置文件 vi /etc/sysconfig/network-scripts/ifcfg-ens33 二、更改配置文件的参数 将BOOTPROTO的属性值改为static 或者是直接注销原来的重新写更改为静态的 三、在配置文件中设置ip地址和网关 1、IP地址的前三段需要和主机的 VMnet8 网卡的ip保持一致&#xff08;主…

Spring AI教程(二)Chat API之基于数据库的多Key轮询

基于数据库的多Key轮询 在之前的文章中我们所使用的Key都是一个&#xff0c;但事实上&#xff0c;官方对Key会有一定的请求限制&#xff0c;在实际业务场景下&#xff0c;我们也不可能通过一个Key来保证我们的系统稳定运行&#xff0c;因为一旦超过请求限制&#xff0c;就会出现…

RTSP/Onvif视频监控平台EasyNVR如何提高匿名用户的用户名和密码安全性?

EasyNVR安防视频云平台是旭帆科技TSINGSEE青犀旗下支持RTSP/Onvif协议接入的安防监控流媒体视频云平台。平台具备视频实时监控直播、云端录像、云存储、录像检索与回看、告警等视频能力&#xff0c;能对接入的视频流进行处理与多端分发&#xff0c;包括RTSP、RTMP、HTTP-FLV、W…

python学习笔记B-07:序列结构之列表--列表的常用函数和方法

以xx_函数名(列表名)的形式出现的是函数&#xff1b;以xx_列表名.xx_方法名的形式出现的是方法。 列表常用函数如下&#xff1a; len()&#xff1a;计算列表元素数量 max()&#xff1a;获取列表元素最大值 min():获取列表元素最小值 sum():计算列表中各元素之和 列表常用方法如…

echart自定义图片填充柱状图

echart用自定义图片填充柱状图 关键代码 type: pictorialBar 加记得加image://或者直接使用bas64格式图片 const testIcon "image://"require(/assets/test.svg) svg图片 <?xml version"1.0" standalone"no"?><!DOCTYPE svg PUBL…

都2024年了,你还不知道git worktree么?

三年前 python 大佬吉多范罗苏姆(为 Python 程序设计语言的最初设计者及主要架构师)才知道 git worktree &#xff0c;我现在才知道&#xff0c;我觉得没啥丢人的。 应用场景 如果你正在 feature 的分支中开发新功能&#xff0c;线上版本紧急错误又需要你基于 master 做修复。…

交易系统的设计与实现

前言 在线交易是生活中必不可少的&#xff0c;交易包括支付和转账&#xff0c;简单理解就是个人或者商户的银行账户下资产的增减行为。 在线支付一般需要借助网联进行&#xff0c;网联是网联清算有限公司(NetsUnion Clearing Corporation,简称NUCC)运营的第三方支付机构统一…

NetFlow 监控工具

NetFlow 是流量数据统计使用最广泛的标准&#xff0c;它是由思科公司开发&#xff0c;用于监控和记录传入或传出接口的所有流量&#xff0c;NetFlow 分析其收集的流量数据&#xff0c;以提供流量和流量的可见性&#xff0c;并跟踪流量的来源、去向以及随时产生的流量。记录的信…

进程及进程地址空间

进程理解 概念&#xff1a;进程是程序的一个执行实例&#xff0c;其实启动一个程序&#xff08;静态&#xff09;本质就是启动了一个进程&#xff08;动态&#xff09;&#xff0c;进程具有独立性。 用户角度&#xff1a;进程代码数据内核数据结构&#xff08;PCB结构体页表操…

UI5:面向企业级应用的JavaScript框架

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

T31开发笔记: 移动侦测

若该文为原创文章&#xff0c;转载请注明原文出处。 最近在测试创安源IPC时发现摄像头的视频流有移动侦测功能 &#xff0c;拆解后发现使用的是T31,刚好手头上有淘宝买50多点的T31摄像头&#xff0c;就自己现在了个简易DEMO测试一下。 一、硬件和开发环境 1、硬件&#xff1a;…