A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

用函数实现两个变量值得交换。
        #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);
               
        }

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马