用函数实现两个变量值得交换。
#include <stdio.h>
void swap(int a,int b){
int temp;
temp = a;
a = b;
b = temp;
}
void swap1(int *p,int *p1){
int *temp;
temp = p;
p = p1;
p1 = temp;
}
void swap2(int *p,int *p1){
int temp;
temp = *p;
*p = *p1;
*p1 = temp;
}
int main(int argc,const char * argv[]){
int a = 4;
int b = 5;
swap(a,b); // 这个方法明显不行,因为只是a,b只是把值传过去了。没有交换主函数中a,b的值。
swap1(&a,&b); //这个高级一点,把a,b的地址传过去了。但是只是交换了地址,等到}(大括号),系统中的内存直接释放了没什么卵用
swap2(&a,&b); //这个可以交换,把a,b的地址传过去,然后用*p把p对应的地址的内容做操作。这个就可以交换a,b的值了。
printf("交换前a= %d,b = %d",a,b);
printf("交换后a= %d,b = %d",a,b);
}
|
|