关于引用传递的测试题
第一段程序:
public static void change(int[] arr)
{
// both of the following changes will affect the original variables:
arr[0] = 888;
arr = new int[5] { -3, -1, -2, -3, -4 };
Console.WriteLine((arr[0]).ToString());
}
public static void Main()
{
int[] myarray = new int[3];
myarray[0] = 1;
myarray[1] = 4;
myarray[2] = 5;
Console.WriteLine(myarray[0]);
change(myarray);
Console.WriteLine(myarray[0]);
Console.ReadLine();
}
第二段程序:
public static void change(ref int[] arr)
{
// both of the following changes will affect the original variables:
arr[0] = 888;
arr = new int[5] { -3, -1, -2, -3, -4 };
Console.WriteLine((arr[0]).ToString());
}
public static void Main()
{
int[] myarray = new int[3];
myarray[0] = 1;
myarray[1] = 4;
myarray[2] = 5;
Console.WriteLine(myarray[0]);
change(ref myarray);
Console.WriteLine(myarray[0]);
Console.ReadLine();
}
回答格式:
第一段程序:XXX
第二段程序:XXX
答案:
第一段程序:
1
-3
888
第二段程序:
1
-3
-3
解释:
引用类型作为参数时:
1、在修改变量本身时,结果类似于值传递,即不会改变传递前的变量的值
2、在修改变量的属性或字段时,才是引用传递,会影响到传递前的变量的值
3、参数使用了ref后,才是真正的引用传递,不管修改变量本身还是修改变量的属性或字段,都会影响到传递前的变量的值
转载于:https://www.cnblogs.com/yuqilin/archive/2011/09/02/2163256.html
关于引用传递的测试题相关推荐
- C++ 函数参数 值传递与引用传递
以前我们在C语言中函数参数传递过程中,如果我们想要让当A函数作用域中的变量经过B函数处理之后的数值仍然在A函数中生效,这个时候函数参数的传递时需要引用方式去传递,方式如下: #include < ...
- 【Qt】信号和槽对值传递参数和引用传递参数的总结
在同一个线程中 当信号和槽都在同一个线程中时,值传递参数和引用传递参数有区别: 值传递会复制对象:(测试时,打印传递前后的地址不同) 引用传递不会复制对象:(测试时,打印传递前后的地址相同) 不在同一 ...
- Java中的值传递和引用传递
当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 答:是值传递.Java 编程语言只有值传递参数.当一个对象实例作为 ...
- Java值传递与引用传递
Java面试题: 当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 答案基本上是:值传递 说明:得出这种结论的前提必须是&qu ...
- python参数传递方法_深入理解python中函数传递参数是值传递还是引用传递
python 的 深入理解python中函数传递参数是值传递还是引用传递 目前网络上大部分博客的结论都是这样的: Python不允许程序员选择采用传值还是传 引用.Python参数传递采用的肯定是&q ...
- Stack Overflow上188万浏览量的提问:Java 到底是值传递还是引用传递?
来自:沉默王二 在逛 Stack Overflow 的时候,发现了一些访问量像阿尔卑斯山一样高的问题,比如说这个:Java 到底是值传递还是引用传递?访问量足足有 188万+,这不得了啊!说明有很多很 ...
- java 引用传递_详解java的值传递、地址传递、引用传递
详解java的值传递.地址传递.引用传递 一直来觉得对值传递和地址传递了解的很清楚,刚才在开源中国上看到一篇帖子介绍了java中的值传递和地址传递,看完后感受颇深.下边总结下以便更容易理解. 按照以前 ...
- go slice获取唯一值_Go语言引用传递与值传递
先说结论 GO中只有值传递,没有引用传递 所谓值传递,就是实参通过拷贝将自身内容传递给形参.也就是将传递的内容拷贝一份,给函数.所以函数外和函数里对这个参数地址求值,应该是不一样的. 证明如下: fu ...
- php无法引用,PHP错误:“无法通过引用传递参数2”
我只需要这个不太了解的PHP错误的帮助: 致命错误:在第13行的/web/stud/openup/inactivatesession.php中无法通过引用传递参数2 error_reporting(E ...
最新文章
- ICML2018见闻 | 迁移学习、多任务学习领域的进展
- 利用WampServer挂载MySQL数据库
- 如果可以,我想给这本书打十星!
- c++函数内部可以返回函数内部定义的指针 但是不能返回函数内部定义的数组...
- linux终端lex程序运行,lex的简单使用
- IDEA中怎么设置黑色或白色背景?
- 增强服务器安全性能,加强Linux服务器安全的20项建议
- java runnable 使用_java – 在哪里使用可调用以及在哪里使用Runnable接口?
- 自学Java的人,如何系统全面的学习?
- 读书笔记《React:引领未来的用户界面开发框架》
- [Python] L1-040. 最佳情侣身高差 团体程序设计天梯赛GPLT
- Python列表推导式求素数
- java excel换行_Java 导出excel进行换行的案例
- es6-es12简单总结
- 交互设计软件 html,5款优秀的交互动效设计软件推荐,让你用到爽
- XCTF|PWN-string-WP
- idea出现Cannot find keymap “Windows copy的报错?
- Python拓展dict类
- 如何将大量图片文件合并成一个*.bin文件
- add_metrology_object_circle_measure (对齐测量模型)
热门文章
- 综合布线智能配线系统发展趋势
- be sure to bring water with you while studying
- AndroidStudio3.4+Unity2018.3,导出JAR包给UNITY使用
- mysql主从复制-mysqldump
- mysql-5.7.21 二进制安装 | Jemalloc内存优化 | 备份恢复|修改密码
- 调试你的Python代码
- 提升网络可靠性的双网卡绑定7种模式
- EL表达式隐含对象和jstl命名冲突,jstl无法取的值
- 单例模式(线程安全+延迟加载)
- ios中while()和 android中的不同之处