首页 > 代码库 > c语言函数传递数组
c语言函数传递数组
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语言函数传递数组
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。