#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
void print(int b[], int len)
{
int i = 0;
for (i;i<len;i++)
{
printf("%d", b[i]);
}
printf("\n");
}
int main()
{
int a[5] = { 1,2,3,4,5 };
int data = 0;
data = sizeof(a) / sizeof(int);
print(&a[0], data);
}
运行结果如下:
在这里会发现,调用print()方法时,第一个参数是&a[0]即数组首元素的地址,第二个参数是数组的长度,将第一个参数改为a也是可以的,即print(a,data),数组名是数组的地址也是数组首元素的地址。当数组作为函数参数传递时,传入的是首地址,并非数组本身,所以print()方法中第一个形参int a[],[]中有没有数字没有任何关系且一般为空。
改为print(a,data),运行结果也是一样的。