首页 > 编程语言 > 详细

c语言函数传递数组

时间:2014-10-31 13:27:35      阅读:260      评论:0      收藏:0      [点我收藏+]

1、传递数组,打印不出来

#include <stdio.h>
void solve()
{        
  printf("%d",x[0]);
}

int main()
{      
    int i;
    for(i=0;i<n;i++)
    {
        scanf("%d",&x[i]);   
        printf("%d\n",x[i]);     
    }
    solve();  
    
    return 0;
}

[Error] error: `x‘ undeclared (first use in this function)

------------------------------------------------

解决方案一:设置全局变量

#include <stdio.h>
int x[100];
void solve()
{        
  printf("%d",x[0]);
}
int main()
{      
    int i,n;
    puts("输入数组长度");
    scanf("%d",&n);
    
    for(i=0;i<n;i++)
    {
        scanf("%d",&x[i]);   
        printf("%d\n",x[i]);     
    }
    solve();      
    return 0;
}

解决方案二:用指针传递首地址

传数组给一个函数,数组类型自动转换为指针类型,因而传的实际是地址。void func(int array[10])void func(int array[])void func(int *array)所以以上三种函数声明完全等同。
#include <stdio.h>

void solve(int *x) //前面的int也不能省。 
{        
  printf("%d",x[1]);
}
int main()
{      
    int i,n;
      puts("输入数组长度");
    scanf("%d",&n);
     int x[n];  
    
    for(i=0;i<n;i++)
    {
          printf("输入第%d个数",i+1);
        scanf("%d",&x[i]);   
        printf("%d\n",x[i]);     
    }
    solve();    //这里的x也不能省  
    return 0;
}

 

c语言函数传递数组

原文:http://www.cnblogs.com/bluewelkin/p/4064767.html

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