>ポインタを使うしかないの?
C99に参照はついてないはずだから、Yes。
C++なら、参照を使う手があり、つか、普通そうする。

>で、ポインタだとどうやるわけ?
void swap(int *p1,int *p2){
int x=*p1;
*p1=*p2;
*p2=x;
}
swap(&n1,&n2);
だろ。