黑马程序员技术交流社区

标题: 用函数实现两个变量值得交换 [打印本页]

作者: 勇猛的小黑    时间: 2015-11-9 18:04
标题: 用函数实现两个变量值得交换
用函数实现两个变量值得交换。
        #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);
               
        }






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2