经典指针程序,互换两个数字

 1 # include <stdio.h>
 2 void huhuan_1(int , int  );
 3 void huhuan_2(int *, int*);
 4 void huhuan_3(int *, int *);
 5 
 6 
 7 int main(void)
 8 {
 9     int a = 3;
10     int b = 5;
11     
12     huhuan_1(a, b);
13     printf("a = %d, b = %d\n",a, b);
14 
15     huhuan_2(&a, &b);    //写成huhuan(*p, *q);或者huhuan(a, b);都是错误的
16     printf("a = %d, b = %d\n",a, b);
17 
18     huhuan_3(&a, &b);
19     printf("a = %d, b = %d\n",a, b);    
20     
21     return 0;
22 }
23 void huhuan_1(int a, int b)
24 {
25     int t;
26     
27     t = a;
28     a = b;
29     b = t;
30 }
31 void huhuan_2(int * p, int * q)
32 {
33     int * t; //如果要互换p和q的值,则不能写成int t;
34 
35     t = p;
36     p = q;
37     q = t;
38     
39 }                  //该函数只是互换了形参,互换的是地址值。
40 void huhuan_3(int * p, int * q)
41 {
42     int  t;  //如果要互换*p和*q的值,则t必须定义成int,不能定义成int *。
43 
44      t = *p;   // p是int * ,*p是int
45     *p = *q;
46     *q = t;
47     
48 }               //可以完成互换的功能    

posted on 2012-09-03 13:53  Your Song  阅读(265)  评论(0编辑  收藏  举报

导航