为什么没有互换成功?

#include<stdio.h>
void swapl(int a,int b)
int t;
t=a;
a=b;
b=t;
void main()

int a=3;
int b=5;
if(a<b)
swapl(a,b)
printf(“互换后结果为%d %d\n“, a, b);

因为修改形参不影响实参
你想让它反过来作用于实参
那么全部都要改成指针
其实就类似于int a=0;
int b=a;
b=2;
修改了b,但是a的值没变,一个道理
你想在修改b的时候能改变a,那么要这样
int *b=&a;
*b=2;

swapl函数的参数改成指针的形式,传址,不是传值

swap的参数int a,int b只能作为输入,不能作为返回值,如果要返回,程序修改如下所示:

#include<stdio.h>
void swapl(int *a,int *b)
{
    int t;
    t=*a;
    *a=*b;
    *b=t;
}
int  main()
{
    int a=3;
    int b=5;
    if(a<b)
        swapl(&a,&b);
    printf("互换后结果为%d %d\n", a, b);
    return 0;
}