Hola! si no me equivoco, como camyl1986 esta en C++ esta haciendo bien el swap ya que declara la funcion como:
   agregar esos "&" es equivalente a lo que mostro carbon; solo que tenes un error carbon: lo unico que haces es intercambiar punteros pero no el 
contenido por lo tanto al volver al main nose produce ningun cambio   
Código C:
Ver originalvoid intercambia(int *a, int *b){
        int aux;
        aux=*a; *a=*b; *b=aux;
    }
  
  
Saludos