交换两个数

#include<stdio.h>
int main()
{
    void swap(int *p1,int *p2);
    int a,b;
    int *pointer_1,*pointer_2;
    scanf("%d%d",&a,&b);
    pointer_1=&a;    pointer_2=&b;
    swap(pointer_1,pointer_2);
    printf("%d,%d\n",a,b);
    
 } 
 void swap(int *p1,int *p2)
 {
     int m;
     m=*p1;
     *p1=*p2;
    *p2=m;
     
 }

 

0 2

2,0

 

--------------------------------

Process exited after 3.006 seconds with return value 0

请按任意键继续. 

  测试一:

#include<stdio.h>
 void swap(int *p1,int *p2)
 {
     int *m;
     *m=*p1;
     *p1=*p2;
    *p2=*m;
     
 }
int main()
{

    int a,b;
    int *pointer_1,*pointer_2;
    scanf("%d%d",&a,&b);
    pointer_1=&a;    pointer_2=&b;
    swap(pointer_1,pointer_2);
    printf("%d,%d\n",a,b);
     } 
测试二:
#include<stdio.h> int main() { void swap(int *p1,int *p2); int a,b; int *pointer_1,*pointer_2; scanf("%d%d",&a,&b); pointer_1=&a; pointer_2=&b; swap(pointer_1,pointer_2); printf("%d,%d\n",a,b); } void swap(int *p1,int *p2) { int *m; m=p1; p1=p2; p2=m; }
9 5

9 5

 

--------------------------------

Process exited after 3.006 seconds with return value 0

请按任意键继续. . .

  总结:测试一:函数的调用可以得到一个返回值,而运用指针变量做参数,可以得到多个变化了的值。不用指针变量难以做到这一点。

            测试二:c语言中实参和形参变量之间的数据传递是单向的,指针变量作函数参数也要遵循这一原则。

posted @ 2017-03-25 21:09  冉三废  阅读(171)  评论(0编辑  收藏  举报