#include<stdio.h>
#define N 10
void print(int *a, int n) //形参用指针变量
{
int i;
for(i =0; i< n ; i++)
printf("%d ",*(a+i));
printf("\n");
}
void input(int a[], int n) //形参用数组名
{
int i;
printf("请输入长度为%d的整型数组:\n",n);
for(i = 0; i< n; i++)
scanf("%d",&a[i]);
}
int main(void)
{
int a[N], n, *p;
printf("请输入数组长度:\n");
scanf("%d",&n);
input(a,n); //实参用函数名
print(a,n); //实参用函数名
p = a;
input(p,n); //实参用指针变量
print(p,n); //实参用指针变量
}
总结起来,即传递一个数组,实参和形参的形式有:
1.实参是数组名,形参是数组名;
2.实参是数组名,形参是指针变量;
3.实参是指针变量,形参是数组名;
4.实参是指针变量,形参是指针变量;
以上方式都是地址值的传递,都实现了整个数组的引用传递。