[求助]关于指针传递的过程!
我想实现两个数交换,请各为大虾指点以下两个程序中哪个不能实现交换!谢谢!
main()
{ int *a=0,*b=0;
*a=10,*b=20;
swap(a,b);
printf("%d,%d\n",*a,*b);
}
swap(int *p,int *q)
{ int t;
t=*p;*p=*q;*q=t;
}
第二个
main()
{ int a=10,b=20,*x=0,*y=0;
*x=&a,*y=&b;
swap(x,y);
printf("%d,%d\n",a,b);
}
swap(int *p,int *q)
{ int t;
t=*p;*p=*q;*q=t;
}
----------------解决方案--------------------------------------------------------
都不可以
----------------解决方案--------------------------------------------------------
地址和值。
这是相当模糊的.....
----------------解决方案--------------------------------------------------------
以下是引用qwerty1217在2007-8-12 15:38:15的发言:
我想实现两个数交换,
请各为大虾指点以下两个程序中哪个不能实现交换!谢谢!
main()
{ int *a=0,*b=0;
*a=10,*b=20;--------------指针要存放变量的地址!!
swap(a,b);
printf("%d,%d\n",*a,*b);
}
swap(int *p,int *q)
{ int t;
t=*p;*p=*q;*q=t;
}
第二个
main()
{ int a=10,b=20,*x=0,*y=0;
*x=&a,*y=&b;----------------x=&a;y=&b;
swap(x,y);
printf("%d,%d\n",a,b);
}
swap(int *p,int *q)
{ int t;
t=*p;*p=*q;*q=t;
}
我想实现两个数交换,
请各为大虾指点以下两个程序中哪个不能实现交换!谢谢!
main()
{ int *a=0,*b=0;
*a=10,*b=20;--------------指针要存放变量的地址!!
swap(a,b);
printf("%d,%d\n",*a,*b);
}
swap(int *p,int *q)
{ int t;
t=*p;*p=*q;*q=t;
}
第二个
main()
{ int a=10,b=20,*x=0,*y=0;
*x=&a,*y=&b;----------------x=&a;y=&b;
swap(x,y);
printf("%d,%d\n",a,b);
}
swap(int *p,int *q)
{ int t;
t=*p;*p=*q;*q=t;
}
所以都不可以!!
----------------解决方案--------------------------------------------------------
谢谢,各位!
能解释以下原因吗?
出了地址赋值有问题以外!
----------------解决方案--------------------------------------------------------
以下是引用viky2003在2007-8-12 15:54:11的发言:
所以都不可以!!
你修正的函数声明写上没有?
----------------解决方案--------------------------------------------------------
哦
不是很懂!
详细!
----------------解决方案--------------------------------------------------------
两个都不行的.
这个问题很模糊.
----------------解决方案--------------------------------------------------------