(C语言第八章指针)关于以下程序是如何运行以及错在哪里?

#include<stdio.h>
int main()
{
void swap(int *p1,int *p2);
int a,b;
int *pointer_1,*pointer_2;
printf("请输入两个整数:
");
scanf("%d %d",&a,&b);
pointer_1=&a;
poniter_2=&b;
if(a<b)
swap(a.b);
printf("max=%d,min=%d",&a,&b);
return 0;
}
void swap(int *p1,*p2)
{
int *p;
p=p1;
p1=p2;
}

错误有好几处啊。swap函数写的也是错的

#include<stdio.h>
int main()
{
void swap(int *p1,int *p2);
int a,b;
int *pointer_1,*pointer_2;
printf("请输入两个整数:");
scanf("%d %d",&a,&b);
pointer_1=&a;
poniter_2=&b;
if(a<b)
    swap(pointer_1,pointer_2);
printf("max=%d,min=%d",a,b);
return 0;
}
void swap(int *p1,*p2)
{
 int t = *p1;
*p1 = *p2;
 *p2 = t;
}

swap(a,b);