下面这个程序为什么不能交换主函数中i,j的值?

#include <stdio.h>
void swap( int *p,int *q)
{
int *t;
*t=*p; *p=*q; *q=*t;
}
main()
{
int i=10,j=20, *a=&i, *b=&j;
swap(a,b);
printf("i=%d j= %d\n", i,j );
}

t不能用指针

void swap( int *p,int *q)
{
    int t;
    t=*p; *p=*q; *q=t;
}

t不用指针,首先你要知道*p指向的是值,不是地址啦,要对应,有帮助记得采纳哦(´-ω-`)

只是个值,t不指向哪里,所有*t改成t

int *t; 定义完了能直接用吗,直接 *t=*p 不就出错了。
如果swap函数里面是 t = p;p = q; q = t这样的话,不能改变ij的值是因为这个函数改变的是指针变量a和b的指向,而不是指向内容的改变