首页 > 编程笔记 > C语言笔记 阅读:25

C语言数组作为函数参数(3种写法,附带实例)

在 C语言程序中,将数组作为函数参数进行传递,不同于标准的赋值调用的参数传递方法,说明如下:
此时声明函数参数时必须使用和数组相同的数据类型,根据这一点,下面将对函数参数的各种情况进行详细的讲解。

C语言数组名作为函数参数

例如,编写函数 int fun(int lim,int aa[100]),其功能是求出小于或等于 lim 的所有素数,并放在 aa[100] 数组里,输出所有素数。

具体代码如下:
#include <stdio.h>  /* 包含头文件 */

int fun(int lim, int aa[100])  /* 自定义函数 */
{
    int i, j = 0, k = 0;  /* 定义数组下标 */
    for (i = 2; i < lim; i++)  /* 判断是否为素数 */
    {
        for (j = 2; j < i; j++)
            if (i % j == 0)
                break;
        if (j == i)
            aa[k++] = i;
    }
    return k;  /* 程序结束 */
}

int main()  /* 主函数 main() */
{
    int aa[100], i;  /* 定义变量 */
    fun(100, aa);  /* 调用 fun() 函数 */
    printf("100 以内的素数有:\n");  /* 输出信息 */
    for (i = 0; i < 25; i++)  /* 循环判断数组中的所有数 */
    {
        printf("%d\t", aa[i]);  /* 输出满足条件的数 */
    }
    printf("\n");  /* 换行输出 */
    return 0;  /* 程序结束 */
}
运行程序,结果为:

100 以内的素数有:
2       3       5       7       11      13      17      19      23      29      31      37      41      43      47      53      59      61      67      71      73      79      83      89      97

使用数组作为函数参数时,一定要注意函数调用时参数的传递顺序。

C语言可变长度数组作为函数参数

可以将函数的参数声明成长度可变的数组。

例如如下代码:
void  Fun(char Name[]);   /*声明函数*/
char CName[10];           /*定义整型数组*/
Fun(CName);               /*将数组作为实参进行传递*/
从上面的代码可以看到,在定义和声明一个函数时将数组作为函数参数,并且没有指明数组此时的长度,这样就可将函数参数声明为长度可变的数组。

C语言指针作为函数参数

还可将函数参数声明为指针。指针作为参数和数组作为参数起同样的作用。将函数参数声明为指针的方法,也是C语言程序比较专业的写法。

例如,声明函数参数为指针,代码如下:
void  Fun(int* p);    /*声明函数*/
int iArray[10];       /*定义整型数组*/
Fun(iArray);          /*将数组作为实参进行传递*/
从上面的代码可以看到,指针在声明 Fun() 函数时作为函数参数。在调用函数时,可以将数组作为函数的实参进行传递。

相关文章