如何用指针完成这个问题,如果不用指针是否可以完成

编写程序实现两个数的交换,例如输入3和4,存放a和b中,交换后,输出a和b的值为4和3。同时声明一个传值的和一个传地址的交换函数,对比一下执行效果,是否都能实现两个数的交换。
如果不用指针是否可以应用

使用传值的方法是无法交换两个数的值,可自行验证。

#include<stdio.h>
void swap1(int *p1,int *p2)
{
    int temp=*p1;
    *p1=*p2;
    *p2=temp;
}
void swap2(int a,int b)
{
    int temp=a;
    a=b;
    b=a;
}
int main()
{
    int a,b,*p1,*p2;
    p1=&a;
    p2=&b;
    scanf("%d%d",&a,&b);
    swap2(a,b);
    printf("%d %d\n",a,b);
    swap1(p1,p2);
    printf("%d %d",a,b);
    return 0;
    
}

不用指针就用数组吧,但是c++可以用引用,我写了一篇博客,在主页第一个,可以看看