例1
#include <stdio.h>
void print_array(int *a)
{
int i;
for(i = 0; i < 10; i++ )
{
printf("%d\n",a[i]);
}
}
int main ()
{
int a[10] = {1,2,3,4,5,6,7,8,9,10};
print_array(a);
return 0;
}
输出结果:
上述代码仍然是不完美的,如果改变数组成员数量,就无法完全输出,因为 print_array 只能输出10个元素。
例2
如果一个数组作为函数的参数,那么数组的成员数量在函数内部是不可见的,在传递一个数组的时候,同时提供另外一个参数,标明这个数组有几个成员变量,如果函数的参数是一个字符串,那么并不需要再传递一个参数说明这个字符串有多长。
#include <stdio.h>
void print_array(int n, int *a)
{
int i;
for(i = 0; i < n; i++ )
{
printf("%d\n",a[i]);
}
}
int main ()
{
int a[] = {11,23,33,4,5,6,7,8,9,10,99};
print_array(sizeof(a)/sizeof(a[0]), a);
return 0;
}
输出结果: