看板java
标 题Re: [虫?] 灵异现象??=口=""
发信站SayYA 资讯站 (Mon Feb 27 15:40:19 2006)
转信站ptt!ctu-reader!news.nctu!SayYa
嘿, 朋友是名别, 您在code里加了别名
※ 引述《[email protected] (拉裤King)》之铭言:
> 如果没想错的话
> 这应该是因为阵列为call by reference
> 所以wired内容改变,normal也会变
> 相对的若是call by value的string就不同
> String wired="i hate you";
> String normal=wired;
> 则wired变,normal也不会变
> 应该是这样吧...大概
> ※ 引述《KeeperOf7Key (七把钥匙的主人)》之铭言:
> : 以下是一段短短的程式:
> : public class MyGod
> : {
> : public static void main(String args[])
> : {
> : int del = 1;
> : String[] wired = {"I", "hate", "you"};
> : String[] normal = wired;
wired也被称为normal
normal是wired的绰号(这样也许比较容易了吧!?)
因此, 你对wired做什麽,
就是您对normal做了什麽, 反之, 亦然
> : MyGod myg = new MyGod();
> : String[] strange = myg.delete(wired,normal,del);
> : for(int damn = 0; damn<normal.length;damn++)
> : System.out.println("&" + normal[damn]);
> : }
> : String[] delete(String[] wired, String[] normal, int del)
> : {
> : wired[del] = "";
> : return wired;
> : }
> : }
> : 上面的程式照理来说除了红色那行将wired存到normal里之外~没有任何有关
> : normal的运算式,所以照理说在main里面print出normal这个变数的时候,
> : 应该是会印出毫无变动的&I,&hate,&you。受到变动的应该只有wired这个阵列
> : 里的"hate"在delete这个method里变成"",而跟normal无关。但是为什麽到最後
> : 在main里面print出normal的时候连normal[1]也变成了""????想都想不透...
> : 烦请各位高手帮忙,谢谢!!!
> : ◆ From: 140.123.46.150
--
※ Origin: SayYA 资讯站 <bbs.sayya.org>
◆ From: 163.26.34.214