1、传递数组,打印不出来
#includevoid solve(){ printf("%d",x[0]);}int main(){ int i; for(i=0;i
[Error] error: `x' undeclared (first use in this function)
或者是这个错误for each function it appears in.)
------------------------------------------------
解决方案一:设置全局变量
#includeint x[100];void solve(){ printf("%d",x[0]);}int main(){ int i,n; puts("输入数组长度"); scanf("%d",&n); for(i=0;i
解决方案二:用指针传递首地址
传数组给一个函数,数组类型自动转换为指针类型,因而传的实际是地址。void func(int array[10])void func(int array[])void func(int *array)所以以上三种函数声明完全等同。
#includevoid solve(int *x) //前面的int也不能省。 { printf("%d",x[1]);}int main(){ int i,n; puts("输入数组长度"); scanf("%d",&n); int x[n]; for(i=0;i
数组给一个函数,常用的是可把数组的首地址传给函数。 即相当于是指针的应用 fun(int array[10][]) fun(int array[]) fun(int *array) 三种调用方法 完整版:输入的数组全部打印出来
#includeint i,n;void solve(int *x) //前面的int也不能省。 { for(i=0;i
另外一个例子:
#include "stdio.h"//指针:数组的传递 void int_set(int *vc,int no,int val){ int i; for(i=0;i