数组与函数

在开始本课题之前,我们最好对函数的使用有一定的了解。本课题主要讲解的是数组作为函数的参数的使用方法。函数使用数组的最佳方法是采用引用调用的方式传入参数,这种方式我们只需要传递数组的地址即可通过指针访问整个数组。

数组在函数中的使用方法

  1. 数组单个元素作为参数传入
  2. 整个数组作为参数传入

数组单个元素作为参数传入

这种方式与我们之前在函数使用中讨论的方法基本相同,只不过是函数参数传入的是数组的单个元素。
函数调用方法

function_name(array_name[index]);

函数定义

return_type function_name(dataType arr_value){;}

整个数组作为参数传入

这种方式通过传入数组名或者数组的基地址即可将整个数组通过引用调用的方式传入函数。
函数调用方法

function_name(&array_name[0]);
function name(array_name);   

函数定义

return_type function_name(dataType *arr_ptr){;} 
return_type function_name(dataType arr_ptr[]){;} 
return_type function_name(dataType arr_ptr[array_size]){;} 

你还可以传入一个多维数组。
函数调用方法

function_name(&array_name); 

函数定义

return_type function_name(dataType (*arr_ptr)[]){;}

注意:
— array_name,&array_name[0],&array_name都表示一维数组的基地址。
— (array_name + 1) = (&array_name[0] +1),但不等于(&array_name + 1)。

例程:
此程序通过用户定义的函数display(),显示初始化数组。

#include <stdio.h>
 
void display(unsigned int *,unsigned int );/*protoType*/ 
 
int main() 
{
    
    unsigned int arr[10]={10,20,30,40,50,60};
 
    display(arr,6); /*calling*/
 
    return 0;
}
 
void display(unsigned int *arr_ptr,unsigned int size) /*definition*/
{
    unsigned int j;
    
    for(j=0;j<size;j++)
    {
        printf("\narr[%d]= %u",j,arr_ptr[j]);
    } 
}

输出结果:

arr[0]= 10
arr[1]= 20
arr[2]= 30
arr[3]= 40
arr[4]= 50
arr[5]= 60

下一节