位置:首頁(yè) > 軟件操作教程 > 編程開(kāi)發(fā) > C語(yǔ)言 > 問(wèn)題詳情

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

提問(wèn)人:劉團(tuán)圓發(fā)布時(shí)間:2020-12-01

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

【例題】實(shí)參為指針

將【例題】程序改寫(xiě),要求實(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);     /*指針作為實(shí)參,形參是能接收地址的指針*/

    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í)行過(guò)程為:將p、q的值(a的地址、b的地址)分別傳遞為形參指針x、y,如圖所示。

image.png

形參指針變量x指向變量a; y指向變量b,在函數(shù)調(diào)用開(kāi)始時(shí)才分配存儲(chǔ)空間,函數(shù)調(diào)用結(jié)束后立即被釋放。

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

image.png

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

相關(guān)視頻回答
回復(fù)(0)
返回頂部