C语言一道题

#include<stdio.h>voidf(int*q){inti=0;for(;i<5;i++)(*q)++;}main(){inta[5]={1,2,3,4,5},... #include <stdio.h>
void f(int *q)
{int i=0;
for(;i<5;i++)
(*q)++;
}
main()
{int a[5]={1,2,3,4,5},i;
f(a);
for(i=0;i<5;i++)
printf("%d",a[i]);
}
为什么f(a)是指f(a[0])的值 详细解释一下!
我是指a[0]为什么是6 而a[1],a[2],a[3]a[4]是定义数组时的值没有变。
展开
 我来答
沐点醉V
2011-02-23 · TA获得超过130个赞
知道答主
回答量:35
采纳率:0%
帮助的人:56.8万
展开全部
首先要理解 数组 在内存中的分配,对于a[5]这个数组,在内存中会分配5块地址,a[0],a[1],a[2],a[3],a[4] 分别指向这个5 个地址,而数组名 a 是指向 这个数组的 第一个的数的地址的指针,即 a 和 a[0] 是相同的意思!故f(a); 只对数组 第一个数进行五次 自加 运算!后面四个数的值 不变
匿名用户
2011-02-23
展开全部
数组a的首地址就是a[0]的地址
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
onlymeteor
2011-02-23 · TA获得超过722个赞
知道小有建树答主
回答量:411
采纳率:0%
帮助的人:328万
展开全部
数组名本身是一个指针常量(地址),指向a[0],所以a=&a[0]。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tuwulin365
2011-02-23 · TA获得超过4644个赞
知道大有可为答主
回答量:1.3万
采纳率:100%
帮助的人:6411万
展开全部
数组名就是指针
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
这名也好起
2011-02-23 · TA获得超过335个赞
知道小有建树答主
回答量:465
采纳率:0%
帮助的人:292万
展开全部
a 数组么 默认从a[0]开始的 之后i++ 数组也就在移动了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
无度风霜雪雨
2011-02-23 · 超过31用户采纳过TA的回答
知道答主
回答量:175
采纳率:0%
帮助的人:66.6万
展开全部
a是一个数组名,而*a呢就代表a[0],在子函数f()中,其中(*q)++就是a[0]++ !不知道这样说,你懂没有,还有什么不懂就再问吧!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式