位置:首頁 > 軟件操作教程 > 編程開發(fā) > C語言 > 問題詳情

C語言 指針作為函數(shù)的形參和實參

提問人:劉團圓發(fā)布時間:2020-12-01

當函數(shù)的形參為指針,實參也為指針時,傳遞方式和普通變量一樣,也是值傳遞的形式。

【例題】實參為指針

將【例題】程序改寫,要求實參為指針的形式。程序代碼如下:

#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

}

程序的執(zhí)行過程為:將p、q的值(a的地址、b的地址)分別傳遞為形參指針x、y,如圖所示。

image.png

形參指針變量x指向變量a; y指向變量b,在函數(shù)調用開始時才分配存儲空間,函數(shù)調用結束后立即被釋放。

形參指針不能改變實參指針的值,但可以改變它們所指向的變量的值。

image.png

繼續(xù)查找其他問題的答案?

相關視頻回答
回復(0)
返回頂部