1、

void swap(int a , int b){

int work=a;

a=b;

b=work;

}

2、

void swap (int[] a){

int work=a[0];

a[0]=a[1];

a[1]=work;

}

int[] x={10,20};

swap(x);


1ではxとyの値をコピーして値渡ししているが、2では配列(基本データ型以外)を使って格納域のアドレスを値渡ししている(参照渡し)しているので、swap後の結果が元のxの値にも適応される。

1では元のxとyには何の影響も及ぼさない。