值传递和址传递

2024-06-15 22:52
文章标签 传递 和址

本文主要是介绍值传递和址传递,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

值传递

上面的代码是想要交换x,y的值,把x,y传递给swap函数之后,执行下面的操作:

在swap中a和b交换了,但是和x,y没有关系,所以x,y在main中不会变。

址传递

下面再看把x,y的地址&x,&y传给swap,swap使用两个指针变量接受它们。

swap中的*a,*b是对地址的解引用,即*a就是x,*b就是y。所以交换了x和y的值

下面是具体步骤:

交换两个变量的指针不会改变变量的地址,也不会改变变量的值

再看交换x和y的指针,这个交换的是a,b指向的地址,并没有交换 x和y的值

想要交换x和y的地址是不能实现的。因为这些变量通常存储在栈(stack)或堆(heap)的固定位置,并且它们的地址是由编译器或运行时环境自动管理的。

引用:交换变量的值

下面是使用引用的方法交换两个变量的值,

把x,y传给swap,swap使用&a,&b接受。引用就相当于形参通过别名的方式操作实参。

这篇关于值传递和址传递的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1064808

相关文章

Maven的依赖传递、依赖管理、依赖作用域

在Maven项目中通常会引入大量依赖,但依赖管理不当,会造成版本混乱冲突或者目标包臃肿。因此,我们以SpringBoot为例,从三方面探索依赖的使用规则。 1、 依赖传递 依赖是会传递的,依赖的依赖也会连带引入。例如在项目中引入了spring-boot-starter-web依赖: <dependency><groupId>org.springframework.boot</groupId>

C#启动另外一个C#程序,并传递参数

第一个程序:             using System.ComponentModel; using System.IO;         private void button1_Click(object sender, EventArgs e)         {             string target = Path.GetDirectory

c++程序启动一个C#程序,并给C#程序传递参数,程序间实现参数传递

http://www.dotblogs.com.tw/atowngit/archive/2009/12/26/12681.aspx http://hi.baidu.com/baokunkun/item/8e4bba994b9c41d07b7f01ac C++发送端代码: int main(int argc, ch

Java参数传递造成参数值改变的情况--值传递和引用传递的初步理解

值传递 值传递,像int,float之类的简单类型进行的是值传递 [java]  view plain copy print ? public static void main(String[] args) {       int i = 900;       System.out.println(i);          changeInt(i);       S

QT事件处理系统之二:窗口部件的事件拦截,以及事件的传递顺序

1、案例说明 在父窗口中为selfLineEdit窗口安装事件过滤器,这样我们可以在父窗口中首先拦截来自于selfLineEdit本身产生的事件,并且决定该事件最终是否继续传递到selfLineEdit窗口本身。 2、关键代码 selfLineEdit.cpp #include "selfLineEdit.h"#include <QDebug>selfLineEdit::selfLin

ajax+json+Struts2实现list传递(转载)

一、首先需要下载JSON依赖的jar包。它主要是依赖如下:       json-lib-2.2.2-jdk15       ezmorph-1.0.4       commons-logging-1.0.4       commons-lang-2.4       commons-collections-3.2.1       commons-beanutils      二、

PHP中不同页面之间的数据传递方式

归纳了一下我知道的一共有四种方式: 1.SESSION方式: 通过$_SESSION['name'] = value 赋值,就可以在session的生命周期内一直调用该session值。 需要注意的是‘name’需要唯一,不能重复。 session的一个生命周期:从用户访问页面开始,到断开与网站的链接为止。 用session存储变量的问题是在之前已经打开页面展示seesion数据的情

WPF 利用Process.Start()方法启动指定路径下的exe文件并传递参数

简单来说就是实现一个程序A 打开程序B,并且在打开的时候传递一些参数给B,最后在B窗口上显示出参数,这个小功能也是折腾了我半天。现在把我的过程整理记录下来。 1.首先我们得有一个被调用的程序,新建一个简单的WPF程序,命名为:argTest。里面加一个label,用来显示接收到的参数。直接运行该程序如下: 2.新建一个WPF程序用来启动我们的argTest.exe程序,命名为call。添加窗体

我来讲述构造函数、方法重载、引用传递值传递

一 1.       构造函数: 构造函数亦可以称为构造器或是构造方法,用来创建对象。如下: public Student(){}public Student(String k){this.kemu = k;}     以上两种皆为构造函数,前者是默认的构造函数,可以在类中不进行编写,程序默认,但是如果重载了构造函数,默认构造函数不存在,要使用的话需要重新编写。后者即就是重载的构造函数,因为

如何为事件传递参数

有一个用户控件,如图: 有一个form窗体,添加此用户控件,此控件的作用,是让用户输入用户名和密码,然后点击登录进行验证,如果输入正确就将整个控件的背景颜色设置为绿色,错误的话设置为红色。具体的验证过程放到用户控件的调用者身上。用户验证之后,无论正确与否都返回一个结果, 用户控件根据这个结果设置控件的背景颜色。     所有事件都不要加返回值,都是void类型 用户控件的代码如下: na