数组作为函数参数
我们写代码的时候,会将数组作为参数传递函数,比如:我要实现一个冒泡排序函数将一个整形数组排序。 那我们将会这样使用该函数:
#include <stdio.h>
void bubble_sort(int arr[],int sz)
{
int i = 0;
for(i=0; i<sz-1; i++)
{
int j = 0;
for(j=0; j<sz-i-1; j++)
{
if(arr[j] > arr[j+1])
{
int tmp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tmp;
}
}
}
}
int main()
{
int arr[] = {3,1,7,5,8,9,0,2,4,6};
int i= 0;
int sz = sizeof(arr)/sizeof(arr[0]);
//arr是数组,我么你对数组arr进行传参,实际上传过去的是数组arr的首元素地址
bubble_sort(arr,sz);
for(i=0; i<sizeof(arr)/sizeof(arr[0]); i++)
{
printf("%d ", arr[i]);
}
return 0;
}
补充:数组名arr是数组arr的首地址但有两个例外,1、&arr,取出数组arr的地址,表示整个数组;
2、sizeof(arr),计算数组的大小,sizeof内部单独放数组名,表示整个数组