当前位置导航:炫浪网>>网络学院>>编程开发>>C++教程>>C++进阶与实例

指针作函数参数

  指针作函数参数,形参要求是指针变量,实参要求是指针类型数据。
    函数调用时,将实参的值传递给形参,形参与实参得到相同的值。这时形参所指向的数据与实参所指向的数据共享存储单元,在函数中改变了形参所指向的数据,对应实参所指向的数据将同时改变,函数调用后带回多个值,如此在C语言中间接实现数据的双向传递。
    请注意,利用指针作函数参数实现数据的双向传递不是指指针参数本身,而是指隐藏在指针后面的指针指向变量,指针参数本身依然是单向传值。
    例将两个整数按从小到大的顺序输出。
    先定义一个函数,用指针变量作参数,实现两个数的交换,然后在主函数中调用它,完成两个整数从小到大的顺序输出。    .
    /*程序10一3,将两个整数顺序输出*/
    void exchang(pl,p2)/*交换两个数*/
    int*pl,*p2;
    (int p;
    p=*p1;*p1=*p2;*p2=p;/*结果通过*p1、*p2带回*/
    main()
    {int a,bl
    int*r,  *s;
    scanf(”%d,%d”,&a,&b)}
    r=&a;s=&b;
    if(a>b)exchang(r,s);
    printf(\",%d,%d\n”,a,b);
    )
  输入数据:9,4
  运行结果:4,9
  两点说明:
  (1)若在函数中交换指针变量的值,实参r、s并不改变,指针参数亦是传值。例如:
  int*p;
  p=p1;p1=p2;p2=p;
  不要希望如此完成处理。
  (2)函数中交换值时不能使用无值的指针变量作临时变量。例如:
  int*p;
  *p=*p1;  *p1=*p2;  *p2=*p;
  p无值,*p无意义。
相关内容
赞助商链接