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には何の影響も及ぼさない。