{:soso_e121:}
#include<stdio.h>
void swap(int x , int y);
int
main(void)
{
int x=0;
int y=1;
print(“x is %d \n”,x);
print(“y is %d \n”,y);
print(“Swapping ... \n”);
swap(x,y);
print(“Swaped ! \n ”);
print(“x is %d \n”,x);
print(“y is %d \n”,y);
}
void
swap(int x , int y);
{
int temp=x;
x=y;
x=temp;
}
交换不成功!
分析:main函数的变量 x y 与swap函数的x y是不同的区域它们之间没有任何联系的
解决思路:
引用指针传递参数... ...
#include<stdio.h>
void swap(int *x , int *y);
int
main(void)
{
int x=0;
int y=1;
print(“x is %d \n”,x);
print(“y is %d \n”,y);
print(“Swapping ... \n”);
swap(&x,&y); // 这里返回的是 x y 的地址 不是x y 的值。
print(“Swaped ! \n ”);
print(“x is %d \n”,x);
print(“y is %d \n”,y);
}
void
swap(int *x , int *y); //找到地址,定位到找到的地址那里去。
{
int temp=*x;
*x=*y;
*x=temp;
}
指针的简单理解:改后交换成功!
yeah!
|