关于C语言程序设计一道小题目

来源:百度知道 编辑:UC知道 时间:2024/06/04 09:20:11
为什么说这个程序不能对2个整形值进行交换?
void swap(int *p,int *p)
{int t;
t=*p;*p=*q;*q=t;}
main()
{int *a,*b;
*a=10,*b=20;
swap(a,b);
Printf(“%d%d\n”*a,*b);}

你的a,b两个指针没初始化就拿来赋值了。。。
改成
int x,y;
int *a,*b;
a=&x;
b=&y;
然后再赋值

void swap(int **p,int **q)
{int t;
t=**p;**p=**q;**q=t;}
main()
{int *a,*b;
*a=10,*b=20;
swap(&a,&b);
Printf(“%d%d\n”*a,*b);}
//这样试试。