永发信息网

c语言 二维数组 数组名和*数组名 的区别?

答案:2  悬赏:30  手机版
解决时间 2021-06-06 22:10

我写了这样一个程序:

int main(int argc, char *argv[])
{
void average(int *p,int n);
int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
average(*a,12);
system("PAUSE");
return 0;
}
void average(int *p,int n)
{
float *pe,sum=0,aver;
pe=p+n-1;
for(;p<=pe;p++)
sum=sum+(*p);
aver=sum/n;
printf("%5.2f",aver);
}

输出正常,但是把第5行调用AVERAGE函数的实参改为(a,12)时,我发现输出居然是一样的!!

这是为什么?

最佳答案
a本身就是地址(一个int*)
对a解引用得到a[0]的地址,这个地址还是一个int*,而且和a所表示的地址相同
因为多维数组的存储其实是连续的
所以在这里a和*a 其实都是a,也就是数组的首地址,传过去没影响
全部回答

因为你调用的是数组,数组名本来就代表数组的第一个地址,所以说数组名就是一个地址

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
怎么学好专业课? 电子商务
津市市常德妈妈服在哪里啊,我有事要去这里
急用问题,DNF花屏不花钱怎样解决,,一进图
怎么样才让别人在精确查找QQ上找不到你、?
诺基亚5230怎么样?报价多少?
广西百色靖西具备哪些行业发展?
艺术照和生活照的区别是什么?
要份中考微机提纲!~~~各位请进!
关于Q第二代密宝的问题。!
朋友道歉怎么办
怎样可以让一个人变得开心
热血江湖之来世今生2最后那段歌叫什么名?
开阳离修文多远?
如何玩地下城?
岳麓区长沙市岳麓区教育局地址在什么地方,想
推荐资讯
什么WEB游戏好玩?
树莓苗苗!!!!
为什么我们这个星期要写三篇作文呢?
急急急!!青浦区哪里有卖杰士派哑色塑性发蜡
新买Q号没有密保、怎么申诉成功机率大?
我喜欢的人做我讨厌的事~该怎么面对他?
选择名校还是好专业?高中作文怎么写?给点提
正阳县驻马店我的时尚女友地址在哪里啊
沙洋县荆门广州标榜发型名店在什么地方啊,我
冬天怎么雪下的这么少?咋还不下大雪,眼看就
为什么海贼王425级后的为什么不是原版?
请问我想在南昌开一家巴黎欧莱雅专卖店因该找
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?