なぜ次のコードの出力が11,21,31 11,21,31
で、10,20,30 10,20,30
でないのですか?Javaで配列を渡す
public class Tp {
public static void doChange(int a[])
{
for(int pos=0;pos<a.length;pos++)
{
a[pos]+=1;
}
}
public static void main(String args[])
{
int arr[]= {10,20,30};
doChange(arr);
for(int x:arr)
{
System.out.print(x+",");
}
System.out.println(arr[0]+" "+arr[1]+" "+arr[2]);
}
}
なぜ、それはどちらかでしょうか?確かに['11,21,31,11 21 31'](https://ideone.com/xt9grA)ですか? –
配列の** content **を変更するため、配列自体は変更しないためです。その配列自体は、戻っても同じです。 – fvu
これは明らかです。あなたは[pos] = a [pos] + 1と等しい[pos] + = 1;を書いています。したがって、コンテンツを取得して1だけインクリメントします。 –