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() 函数时作为函数参数。在调用函数时,可以将数组作为函数的实参进行传递。
ICP备案:
公安联网备案: