C++(二十二)

devtools/2025/1/19 19:15:58/

前言:

本文承接上文,将详细讲述C++中,参数与指针。

一,无响应参数。

首先复习一下之前曾学习过的函数:

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

看起来是一个简单的交换a与b值的函数。

完整代码为:

# include <iostream>
using namespace std;
void change(int a,int b);
int main(){
int a=10,b=20;
cout<<"Before swapping a= "<<a<<" b= "<<b<<endl;
change(a,b);
cout<<"After swapping a= "<<a<<" b= "<<b<<endl;
return 0;
}
void change(int a,int b) 
{
int temp;
temp=a;
a=b;
b=temp;
}

按理来说,已定义a=10,b=20,并且使用了change函数来交换a与b的值,但实际上输出为:

a与b的值并没有真的进行了交换。

二,函数的值传递与引用传递。

这是因为在C++中,函数参数是通过值传递的,即函数内部对参数的修改不会影响到函数外部的变量。因此,change函数内部的交换操作不会影响到main函数中的ab

change函数仅交换了形式参数,即change里的a与b,与实际参数:main函数中的值无关。

一般的值传递无法改变调用源的实际参数。

但如果使用指针,调用函数时就可以改变指定参数的值。具体代码如下:

void change(int *Pa,int *Pb){int temp = *Pa;*Pa = *Pb;*Pb = temp;
}

全部代码为:

# include <iostream>
using namespace std;
void change(int *Pa,int *Pb);//声明函数change
int main(){int a = 10,b = 20;cout<<"变量a和b的初始值: "<<a<<" "<<b<<endl;change(&a,&b);//调用函数changecout<<"变量a和b的交换值: "<<a<<" "<<b<<endl;return 0;
}
//定义函数change
void change(int *Pa,int *Pb){int temp = *Pa;*Pa = *Pb;*Pb = temp;
}

运行结果为:


http://www.ppmy.cn/devtools/151891.html

相关文章

Hive集群的安装准备

Hive的安装与集群部署详细指南 一、环境与软件准备 在开始Hive的安装与集群部署之前&#xff0c;确保您准备好以下环境和软件&#xff1a; 虚拟机软件&#xff1a; VMware Workstation 17.5&#xff1a;用于创建和管理虚拟机&#xff0c;确保可以在其上安装Linux操作系统。 …

天童教育:怎样建立稳固的亲子关系

在孩子成长的岁月里&#xff0c;稳固的亲子关系宛如温暖的港湾&#xff0c;为孩子遮风挡雨&#xff0c;给予他们心灵的慰藉和安全感。哈尔滨天童教育相信&#xff0c;良好的亲子关系不仅能让孩子感受到爱与关怀&#xff0c;更是孩子健康成长、人格塑造的重要基石。 然而&#…

第三章、python中的对象、变量、标识符、作用域、引用(调用)及地址的概念(3.1-3.2)------内存地址、创建对象、对象的类型及对象的划分问题

第三章、python中的对象、变量、标识符、作用域、引用(调用)及地址的概念 本章讲述编程中对象、变量、地址的基本概念及其之间的关系,可迭代对象、可变对象、不可变对象的特点。

IEC103 转 ModbusTCP 网关

一、产品概述 IEC103 转 ModbusTCP 网关型号 SG-TCP-IEC103 &#xff0c;是三格电子推出的工业级网关&#xff08;以下简 称网关&#xff09;&#xff0c;主要用于 IEC103 数据采集、 DLT645-1997/2007 数据采集&#xff0c; IEC103 支持遥测和遥 信&#xff0c;可接…

3d系统误差分析

系统标定重投影误差预估 在计算机视觉和三维重建领域中&#xff0c;评估一个相机系统标定精度的重要指标。通过比较真实的三维点在图像中的投影位置与标定模型计算出的投影位置之间的差异&#xff0c;来衡量标定的准确性。 以下是对这一概念的详细解析&#xff1a; 什么是系统…

浅谈云计算21 | Docker容器技术

Docker容器技术 一、 容器技术特性1.1 轻量级特性1.2 隔离性特性 二、容器镜像2.1 容器镜像概述2.1.1 定义与构成2.1.2 分层结构 2.2 联合文件系统2.3 容器镜像的构建与管理2.3.1 容器镜像的构建2.3.2 **构建镜像流程**2.3.3 **应用场景**2.3.4 镜像仓库的应用 2.4 容器镜像的优…

Ubuntu linux 文件权限

文件权限 读权限 &#xff1a;允许查看文件的内容。写权限 (w)&#xff1a;允许修改文件的内容。执行权限 (x)&#xff1a;允许执行文件&#xff08;对于目录来说&#xff0c;是进入目录的权限&#xff09;。 文件权限通常与三类用户相关联&#xff1a; 文件所有者 (Owner)&…

2025.1.17——三、SQLi regexp正则表达式|

题目来源&#xff1a;buuctf [NCTF2019]SQLi1 目录 一、打开靶机&#xff0c;整理信息 二、解题思路 step 1&#xff1a;正常注入 step 2&#xff1a;弄清关键字黑名单 1.目录扫描 2.bp爆破 step 3&#xff1a;根据过滤名单构造payload step 4&#xff1a;regexp正则注…