C語言 指針作為函數(shù)的形參和實(shí)參
當(dāng)函數(shù)的形參為指針,實(shí)參也為指針時(shí),傳遞方式和普通變量一樣,也是值傳遞的形式。
【例題】實(shí)參為指針
將【例題】程序改寫,要求實(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í)行過程為:將p、q的值(a的地址、b的地址)分別傳遞為形參指針x、y,如圖所示。
形參指針變量x指向變量a; y指向變量b,在函數(shù)調(diào)用開始時(shí)才分配存儲(chǔ)空間,函數(shù)調(diào)用結(jié)束后立即被釋放。
形參指針不能改變實(shí)參指針的值,但可以改變它們所指向的變量的值。
點(diǎn)擊加載更多評(píng)論>>