求问函数调用里的指针

#include <stdio.h>

void fun(int *a, int *b, int *c) {

    int *t ;
    t = a;
    a = b;
    b = t;

求问这个函数里的交换都分别交换的啥?为什么最后主函数输出的是373?是哪一步改变了它们的指向吗?可以解释的详细一些吗,谢谢了。
    *t = *b;
    *b = *c;
    *c = *t;

    printf("%d%d%d\n", *a, *b, *c);
}

int main() {
    int a = 5, b = 7, c = 3;
    int *p1 = &a, *p2 = &b, *p3 = &c;
    fun(p1, p2, p3);
    printf("%d%d%d\n", a, b, c);

}

     t = a;
     a = b;
     b = t;

上面3行是交换地址

    *t = *b;
    *b = *c;
    *c = *t;

这三行是交换值

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632