C++-传值与传引用的区别

//值传递与引用传递的区别

#include <iostream>
#include <iomanip>
using namespace std;

void fiddle(int in1, int &in2)
{
	in1 = in1 + 100;
	in2 = in2 + 100;
	cout << "The values are ";
	cout << setw(5) << in1;
	cout << setw(5) << in2 << endl;
}

int main()
{
	int v1 = 7, v2 = 12;
	cout << "The values are:";
	cout << setw(5) << v1;
	cout << setw(5) << v2 << endl;
	fiddle(v1, v2);
	cout << "The values are:";
	cout << setw(5) << v1;
	cout << setw(5) << v2 << endl;
	system("pause");
	return 0;
}

运行结果:

7 12

107 112

7 112

可以得出结论,如果穿引用将会改变变量最初的值,而如果传值在函数中使用后并不会改变其原来的值

时间: 2024-08-03 12:30:52

C++-传值与传引用的区别的相关文章

php传值和传引用的区别

php传值和传引用的区别所谓值传递,就是说仅将对象的值传递给目标对象,就相当于copy:系统将为目标对象重新开辟一个完全相同的内存空间.所谓传引用,就是说将对象在内存中的地址传递给目标对象,就相当于使目标对象和原始对象对应同一个内存存储空间.此时,如果对目标对象进行修改,内存中的数据也会改变.

(转) java 函数形参传值和传引用的区别.

(一)基本数据类型:传值,方法不会改变实参的值. [java] view plain copy public class TestFun { public static void testInt(int i){ i=5; } public static void main(String[] args) { int a=0 ; TestFun.testInt(a); System.out.println("a="+a); } } 程序执行结果:a=0 . (二)对象类型参数:传引用,方法

PHP中传值与传引用的区别

<?php/*func1() : 传值的话,如果是非对象,会传一个值的拷贝,对这个变量做任何改动都不影响原值.*/function func1($a) { $a = $a + 1;}/*func2(): 传引用或者传对象,是传真实的内存地址,对这个变量做的改动会影响原值.*/function func2(&$a) { $a = $a + 1;}$sample = 1;func1($sample);echo $sample; // 不会改变原值,输出 1 $sample = 1;func2($

Java 传参数时,传值和传引用的区别

转载请注明出处,原文地址: http://blog.csdn.net/h28496/article/details/44732713 中北大学 郑海鹏 最近在复习那九大排序算法时,意外的发现用冒泡排序.插入排序.选择排序等in-place sort时, sort(a); 再把a输出,就是已经排好序的新数组了. 但是用归并排序等out-place sort时,sort(a); 之后,输出的还是原来的数组! 为什么呢?请看代码和里面的注释: package zhp.outplace_sort; im

JavaScript系列----数据类型以及传值和传引用

1.简单数据类型 在JavaScript中简单数据类型分为5种.分别为 Undefined, Null,Boolean,Number,String. Undefined类型Undefined类型只有一个值,即特殊的undefined.在使用var对变量声明的时候,变量的值即被初始化为undefined.在使用typeof求得数据类型的时候,对于未声明的变量返回的总是undefined. Null类型Null也只有一个值得数据类型,其实质是一个指向空对象的指针.所以使用typeof操作的时候返回的

php传值与传址的区别

PHP中传值和传址的区别, 十分的简单, 看字面的意思大概就知道是什么意思了, 下面通过简单的实例看一下两者的区别. 1 $a = 5; 2 function show(&$b) { 3 $b += 10; 4 echo "函数内部:" . $b . "<hr>";//结果: 15 5 } 6 show($a); 7 echo "函数外部:" . $a . "<hr>";//结果: 15 总结:

Java传值与传引用

在Java中,变量分为以下两类, 1.对于基本类型变量,Java是传值的副本,即时自己的副本变了,自己也不会变化. 2.对于一切对象型变量,Java都是传引用的副本,也就是复制指向地址的指针,它传的引用副本指向自己的地址. eg:你要张三(张三相当于函数)打开仓库,并检查库里面的货物(仓库相当于地址),有必要新建一座仓库(并放入相同的货物)给张三吗? 没有必要,你只需要把钥匙(引用)复制一把给张三即可, 张三会拿复制的钥匙(引用副本,但是有时效性,函数结束,钥匙销毁)打开仓库. 注意:Strin

【转载】Java是传值还是传引用

1. 简单类型是按值传递的 Java 方法的参数是简单类型的时候,是按值传递的 (pass by value).这一点我们可以通过一个简单的例子来说明: /* 例 1 */ /** * @(#) Test.java * @author fancy */ public class Test { public static void test(boolean test) { test = ! test; System.out.println("In test(boolean) : test = &q

Java学习笔记:详解传值和传引用

传值和传引用 When you're passing primitives into a method ,you get a distinct copy of the primitive. When you're passing a reference into a method , you get a copy of the reference. 以上引自<Thinging in Java>,总结一下就是不管Java参数的类型是什么,一律传递参数的副本. 在Java中,变量分为以下两类: 对