程序如下,为什么指针变量不传值?
fun()函数是交换形参a,b的地址,实参是xy为什么,xy的地址在主函数里面没有交换?
请大佬解释解释,谢谢了
其实原因很简单!
你给fun里面传进去的是指针地址,
但是交换的时候你应该交换值,而不是交换地址啦
所以fun函数写为这样就行:
void fun(int *a, int *b){
int k = *a;
*a = *b;
*b = k;
}
你试试吧!
上面的fun和下面的fun同名能编译过?把main上面的fun删了吧
热门标签:
fun()函数是交换形参a,b的地址,实参是xy为什么,xy的地址在主函数里面没有交换?
请大佬解释解释,谢谢了
其实原因很简单!
你给fun里面传进去的是指针地址,
但是交换的时候你应该交换值,而不是交换地址啦
所以fun函数写为这样就行:
void fun(int *a, int *b){
int k = *a;
*a = *b;
*b = k;
}
你试试吧!
上面的fun和下面的fun同名能编译过?把main上面的fun删了吧