C語言 指針作為函數(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); /*指針作為實參,形參是能接收地址的指針*/
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ù)調用開始時才分配存儲空間,函數(shù)調用結束后立即被釋放。
形參指針不能改變實參指針的值,但可以改變它們所指向的變量的值。
點擊加載更多評論>>