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

inta[4]={1,2,3,4};//定义一个有变量的一维数组.........................voidfun(a[4]);{intx=a[1];int... int a[4]={1,2,3,4}; //定义一个有变量的一维数组
.............
............
void fun(a[4]);
{
int x=a[1];
int y=a[2];
.......
}
为什么X和Y无法用传进来的数组赋值?怎么错了。。需要怎么改啊?麻烦大家了!!
展开
 我来答
百度网友3038d88
2012-08-30 · TA获得超过1097个赞
知道小有建树答主
回答量:1670
采纳率:0%
帮助的人:1167万
展开全部
参数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);
}
银雯tz
2012-08-30 · TA获得超过882个赞
知道小有建树答主
回答量:1042
采纳率:0%
帮助的人:775万
展开全部
void fun(a[4]);你这传的是数组的第4个元素啊,又不是传的数组
追问
哦,这样啊,那怎么改呢,能告诉我吗?
追答
int a[4]={1,2,3,4};
void fun(int a[])
{
int x=a[1];
int y=a[2];
......

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cpucash
2012-08-30 · TA获得超过1584个赞
知道小有建树答主
回答量:1457
采纳率:66%
帮助的人:969万
展开全部
数组只是传递地址过去,所以void fun(a[4]);不对,这里只是传递了a[4]这个数据过去了,还是越界的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友30a547560
2012-08-30
知道答主
回答量:16
采纳率:0%
帮助的人:2.3万
展开全部
fun函数里面的参数不对吧,改为a[]试一试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式