今天自学了C语言函数一章,大体有个了解。但是还有很多问题,麻烦高手给我解释下!先谢谢各位了!

主要是我现在不理解数组,数组名,,指针变量,作为实参,是怎么进行传递的?我自己瞎写了个程序,是错的。麻烦高手就按我这个例子修改下,帮我讲解下数组,数组名,,指针变量,作为... 主要是我现在不理解数组,数组名,,指针变量,作为实参,是怎么进行传递的?我自己瞎写了个程序,是错的。麻烦高手就按我这个例子修改下,帮我讲解下数组,数组名,,指针变量,作为实参,是怎么进行传递的。下面就是我的两个程序,完全瞎写,帮改正,要详解哦!在此先谢谢大神了!
#include <stdio.h>
void Han(int *p)
{
printf("%d",p[0]);
}
void main()
{
int a[4]={"1,2,3,4"};
Han(a);
} 书上说直接把数组名作为实参,传递的是首元素的地址。我这个已经把首元素地址传过去了,为什么输不出来首元素呢?(程序都是错的,麻烦帮改正)

#include <stdio.h>
void Han(int p[4])
{
printf("%d",*p);
}
void main()
{
int a[4]={"1,2,3,4"};
Han(a[4]);
}
书上说把数组作为实参,传递的是数组的地址,我这个已经把数组地址传过去了,为什么也输不出来首元素呢?(程序都是错的,麻烦帮改正)
展开
 我来答
ducky8688
2012-07-23 · TA获得超过753个赞
知道小有建树答主
回答量:241
采纳率:100%
帮助的人:97.4万
展开全部
第一段代码只要把
int a[4]={"1,2,3,4"}; 改为 int a[4]={1,2,3,4};

就正确了
运行的结果是输入 1

第二段代码除了要把引号改掉外,
Han(a[4]); 也要改为 Han(a); 运行的结果是输出1,或者 Han(&a[4]);运行的结果是输出4
追问
第一个懂了!第二个不是将数组作为参数传递的么?实参是数组,形参也是数组,传的不是数组各各元素的地址么?那么传递后*P就是首元素的值,为啥不对呢?我就像输出首元素的值,麻烦在详细讲解下第二个程序!
追答
不好意思,刚才写错了,应该是Han(&a[3]);
第二个你传的不是数组,而是数组的第五个元素
数组名 加上 方括号是指具体的某一个元素,下标
的值是从0开始的,如你此例
a[0]的值为1 a[1]的值为2 a[2]的值为3 a[3]的值为4
stushl
2012-07-23 · TA获得超过329个赞
知道小有建树答主
回答量:730
采纳率:50%
帮助的人:335万
展开全部
int a[4]={"1,2,3,4"};这句不要引号
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式