다음 코드의 출력이 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 씩 증가시킵니다. –