C语言中一维数组作为函数参数传递的问题!?!?!?!?!?

int a[4]={1,2,3,4}; //定义一个有变量的一维数组
.............
............
void fun(a[4]);
{
int x=a[1];
int y=a[2];
.......
}
为什么X和Y无法用传进来的数组赋值?怎么错了。。需要怎么改啊?麻烦大家了!!

参数3中传递方式.
值传递,址传递, 引用传递.
后两者 才是对传入的参数的实际操作.
第一个是 操作的 传入参数的拷贝副本.追问

麻烦告诉我怎么改可以吗?

追答

void fun(int a[4]);
void main()
{
int a[4] = {1,2,3,4};
fun(a);
}
void fun(int a[4])
{
int x = a[1];
printf("%d\n",x);
int y = a[3];
printf("%d\n",y);
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-08-30
void fun(a[4]);你这传的是数组的第4个元素啊,又不是传的数组追问

哦,这样啊,那怎么改呢,能告诉我吗?

追答

int a[4]={1,2,3,4};
void fun(int a[])
{
int x=a[1];
int y=a[2];
......

}

第2个回答  2012-08-30
数组只是传递地址过去,所以void fun(a[4]);不对,这里只是传递了a[4]这个数据过去了,还是越界的
第3个回答  2012-08-30
fun函数里面的参数不对吧,改为a[]试一试
相似回答