"实参/形参"的四种组合关系

来源:互联网 发布:安平淘宝贝高瞻幼儿园 编辑:程序博客网 时间:2024/05/21 01:30

 


modality:形式,形态                fact:实际,事实           parameter:参数,参量

01 #include <stdio.h>
02 #include <string.h>
03 #define N 10                                                                  /*宏定义*/
04 int max,min;                                                                    /*全局变量*/
05 void main()                                                                            
06 {                                                                                        
07 void max_min_value(int *array,int n);                        /*函数原型(声明)*/
08 int array[N],*p;                                                                  
09 printf("Enter %d numbers:",N);                                     
10 for(p=array;p<array+N;p++)                                         /*array+N,数组中最末元素之后的一个指针地址*/
11 scanf("%d",p);
12 printf("Source data:");
13 for(p=array;p<array+N;p++)
14 printf("%4d",*p);
15 max_min_value(array,N);                                            /*fact parameter,transfer function "max_min_value"*/
16 printf("/nmaxdata:%d  mindata:%d/n",max,min);
17 }
18
19 void max_min_value(int *array,int n)                      /*modality parameter*/
20 {
21 int *p,*array_end;
22 max=min=*array;
23 array_end=array+n;                                                       /*数组中最后一个元素之后的一个指针地址*/
24 for(p=array+1;p<array_end;p++)
25 if(*p>max) max=*p;
26 else if(*p<min) min=*p;
27 return 0;                                                                           /*此语句可要可不要*/
28 } 

第15行中的(array,N)为实参,第19行中的(int *array,int n)为形参。
实参A.    p=array;                                                                    实参B.   ……   
 1            max_min_value(p,N);                                                          max_min_value(array,N);
形参A.    void max_min_value(int *array,int n)                  形参B.   void max_min_value(int array[],int n)

实参C.   ……                                                                           实参D.   p=array;  
1            max_min_value(array,N);                                                     max_min_value(p,N);
形参C.   void max_min_value(int *array,int n)                   形参D.   void max_min_value
(int array[],int n)

1、实/形参A中的实参(fact parameter)和形参(modality parameter)均为指针变量;                           
2、实/形参B中的实参(fact parameter)和形参(modality parameter)均为数组名;
3、实/形参C中的实参(fact parameter)为数组名,形参(modality parameter)为指针变量;              
4、实/形参D中的实参(fact parameter)为指针变量,形参(modality parameter)为数组名;
        以上四种实/形参搭配关系可通过自定义函数来改变实参数组中的元素值,(实参在前,形参在后)可简记为数组—数组、指针—指针、数组—指针、指针—数组。