位置:首页 > 软件操作教程 > 编程开发 > C语言 > 问题详情

C语言 指针作为函数的形参和实参

提问人:刘团圆发布时间:2020-12-01

当函数的形参为指针,实参也为指针时,传递方式和普通变量一样,也是值传递的形式。

【例题】实参为指针

将【例题】程序改写,要求实参为指针的形式。程序代码如下:

#include <stdio.h> 

void swap(int *p,int *q); 

main()

{

    int a,b,c;

    int *p=&a,*q=&b,*t=&c;

    printf("please input a,b & c:\n"); 

    scanf("%d%d%d",&a,&b,&c); 

    if(a>b)

        swap(p.q);     /*指针作为实参,形参是能接收地址的指针*/

    if(a>c)

        swap(p.t); 

    if(b>c)

        swap(q,t);

    printf ("%4d%4d%4d\n",a ,b ,c);

}

void swap(int *x,int *y)

{

    int t;

    t=*x;

    *x=*y;

    *y=t

}

程序的执行过程为:将p、q的值(a的地址、b的地址)分别传递为形参指针x、y,如图所示。

image.png

形参指针变量x指向变量a; y指向变量b,在函数调用开始时才分配存储空间,函数调用结束后立即被释放。

形参指针不能改变实参指针的值,但可以改变它们所指向的变量的值。

image.png

继续查找其他问题的答案?

相关视频回答
回复(0)
返回顶部