C语言-运用指针进行角色互换

2020-01-09  本文已影响0人  广陵周惊蛰

问题描述:运用指针进行角色互换

源代码:

/*运用指针进行角色互换*/
/*只有方案二可以完成角色互换*/

#include<stdio.h>
void swap1(int x,int y),swap2(int *px,int *py), swap3(int *px,int *py);
 int main(void)
 {
    int a=1,b=2;
    int *pa=&a,*pb=&b;
    
    swap1(a,b);
    printf("After calling swap1:a=%d,b=%d\n",a,b);
    
    a=1;
    b=2;
    swap2(pa,pb);
    printf("After calling swap2:a=%d,b=%d\n",a,b);
    
    a=1;
    b=2;
    swap3(pa,pb);
    printf("After calling swap3:a=%d,b=%d\n",a,b);
 
    return 0;   
 }
 
 void swap1(int x,int y)
 {
    int t;
    t=x;
    x=y;
    y=t;
 }
 
  void swap2(int *px,int *py)
 {
    int t;
    t=*px;
    *px=*py;
    *py=t;
 }
 
   void swap3(int *px,int *py)
 {
    int *pt;
    pt=px;
    px=py;
    py=pt;
 }

运行结果:

运用指针进行角色互换

程序心得:

1、在C语言中实参与形参之间的数据转换是单向的“值传递”方式,调用函数是不能该百年实参变量的是的。当指针变量作为函数参数时也遵循这一规则。调用函数不能改变实参形参的指针变量的值,但是可以改变实参指针变量所指向的变量的值。

2、当指针变量作为函数参数时也遵循这一规则。调用函数不能改变实参形参的指针变量的值,但是可以改变实参指针变量所指向的变量的值。这样的机制叫做引用调用。

3、采用引用调用机制需要在函数定义时将指针作为函数的形参,在函数调用时把变量的地址作为实参。

程序参数:

上一篇下一篇

猜你喜欢

热点阅读