c语言入门:指针练习

#include <stdio.h>
void alter(int*,int*);
int main(void)
{
int x,y;
alter(&x,&y);
printf("%d %d",x,y);

return 0;
}
void alter(int *n,int *m)
{
    int t;
    if(*n>=*m)
    {
    t=*n
    *n=*n+*m;
    *m=*n-*m;
    }
    else 
    {
    t=*n;
    *n+=*m;
    *m=*m-*n;    
    }
}

这个程序哪错了,为什么运行不了

x,y还没赋值呢

你用的啥编译器?你编译运行肯定失败了,看看报错信息。你的代码语法都没对。。。GCC报错很明显的。我修改了,自己对比吧,代码错误很容易查找解决的。

#include <stdio.h>
void alter(int *, int *);
int main(void)
{
    int x, y;
    alter(&x, &y);
    printf("%d %d", x, y);

    return 0;
}
void alter(int *n, int *m)
{
    int t;
    if (*n >= *m)
    {
        t = *n;
        *n = *n + *m;
        *m = *n - *m;
    }
    else
    {
        t = *n;
        *n += *m;
        *m = *m - *n;
    }
}

第15行末尾缺一个分号,另外你这代码实现的是什么功能,没有任何赋值,只是单纯的对地址进行操作吗