作者pa015596 (sdfgdgf)
看板java
标题[问题] 用函数让字串阵列反转的问题
时间Sat Apr 14 12:07:54 2012
问题如下
String[] data = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J"};
要让data这个字串阵列反转
public static void reverse(String[] str) {
String[] str2=new String[10];
for(int i=0;i<str.length;i++)
str2[i]=str[str.length-1-i];
str=str2;//问题点
}
当在main呼叫reverse(data)时 data这个阵列的值却没被修改
请教大大为何str=str2这行指令不能将结果修改到data
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.116.39.122
1F:→ stimim:call by reference, call by value 04/14 12:15
2F:推 hate9527:Call by value, call by reference 04/14 12:15
3F:→ pa015596:reverse(data) 不是收到data的参考吗 04/14 12:39
4F:→ pa015596:那str=str2不是将str2的参考指定到data吗? 04/14 12:41
5F:→ luoqr:str=data 然後str又=str2 所以 data 不会被改到 04/14 12:57
6F:→ adrianshum:所以我常说把这当成 pass-by-ref 的常会搞错。看 04/14 13:25
7F:→ adrianshum:z-3-4-2 的讨论 04/14 13:27
8F:→ pa015596:谢谢大大们的讲解 04/14 13:58