首页 > 编程语言 > 详细

向函数传递一维数组

时间:2020-09-26 21:59:31      阅读:50      评论:0      收藏:0      [点我收藏+]

1、函数元素作为函数参数

当函数的形参类型与数组元素的类型相同时,数组元素与普通变量一样,可以作为函数实参,且由实参到形参的数据传递也是单向值传递

如 

 1 #include<stdio.h>
 2 #define N 5
 3 
 4 void swap(int x,int y)
 5 {
 6     int temp;
 7     temp = x;
 8     x = y;
 9     y = temp;
10 }
11 
12 int main()
13 {
14     int a = {1,2};
15     printf("%d\t%d\n",a[0],a[1]);
16     swap(a[0],a[1]);
17     printf("%d\t%d\n",a[0],a[1]);
18     return 0;
19 }

结果为 

1 1    2
2 1    2

由此可见,当数组元素作为函数的实参时,数组元素的值会自动初始化形参变量,当函数中的形参发生修改时,数组元素的值不会受到影响

 

2、数组名作为函数实参

常见函数首部格式定义为:

  函数类型 函数名(数据类型 数组名[ ],int n);

如:  void fun1(int a[ ] ,int n)

或:

  函数类型 函数名 (数据类型 数组名[长度]);

如:  void fun2 (int a[10])

 

3、定义数组输入、输出头文件

可以通过设计数组的输入、输出和随机数初始化数组的函数,存放在专门的头文件中,供程序调用,可提高编写效率

如:

可设计以下几个函数,并将其存放与Arry.h的头文件中

1 #include<stdio.h>
2 #include<stdlib.h>
3 
4 void input(int a[],int n)
{
   int i;
   printf("请输入%d个整数,整数间用空格分隔:\n",n);
   for(i = 0;i < n;i++)
     scanf("%d",a+i)                    //输入数组的前n个元素
}  
 void print(int a[],int n)
{
    int i;
    printf("\n数组内容是: \n");
    for (i = 0;i<n;i++)
      {if (i%10 = 0)  printf("\n");          //输入数组的前n个元素,每行输10个
        printf("%6d",a[i]);
      }
    printf("\n");

void init(int a[],int n)
{
   int i;
   srand(time(0));
   for (i = 0;i<n;i++)
     a[i] = rand()%1000+1;                //将数组的前n个元素用随机数初始化
        

在编写数组程序中,可以用指令将三个函数应用到程序中使用

 1 #include<Arry.h>
 2 #define N 10
 3 
 4 int main()
 5 {
 6     int a[N];
 7     input(a,N);
 8     printf(a,N);
 9     return 0;
10 }

 

向函数传递一维数组

原文:https://www.cnblogs.com/zhongllmm/p/13736842.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!