求高手帮忙解释一下这个程序的功能。。最好是重要的语句注释一下,大谢!

#include<stdio.h>voidexch(int*t){t[0]=t[5];}main(){intx[10]={1,2,3,4,5,6,7,8,9,10};in... #include<stdio.h>
void exch(int *t)
{t[0]=t[5];
}
main()
{int x[10]={1,2,3,4,5,6,7,8,9,10};
int i=0;
while(i<=4)
{
exch(&x[i]);i++;//这里传送第i个元素的地址值是什么意思啊,有点不懂.
}
for(i=0;i<5;i++)
printf("%d,",x[i]);
printf("\n");
}
它传送第i个元素的地址值与传送数组名有什么不同吗.
展开
 我来答
良阵v2
2013-07-22 · TA获得超过125个赞
知道小有建树答主
回答量:91
采纳率:86%
帮助的人:50.2万
展开全部
简单给你说下传址跟传值得区别吧
变量是存储在内存中的,系统在内存中开辟一块区域,存放值,然后这个区域有个地址
通过这个地址可以找到这个值

传址是传递这个变量的地址,对这个变量的操作通过地址 改变的是原来的那个址
传值是把这个变量的值传过去 ,传完后这个值得修改就不关这个变量的事了
不是同一个地址的值
更多追问追答
追问
谢谢了。我还有个问题就是如果我把这语句exch(&x[i]);改为这语句exch(x);那他们运行结果的值有什么区别啊。。我就是搞不懂。。
追答
&x[i]是表示x数组中第i个值得地址
x的话就相当于传这个数组的首地址

前者执行完后的输出结果是
6
7
8
9
10
后者的输出结果是(应该是 )
6
6
6
6
6
中智咨询
2024-08-28 广告
在当今竞争激烈的商业环境中,企业需要不断提高自身的竞争力,以保持市场份额和增加利润。通过人效提升,企业可以更有效地利用有限的资源,提高生产力和效益,从而实现盈利目标。中智咨询提供全方位的组织人效评价与诊断、人效提升方案等数据和管理咨询服务。... 点击进入详情页
本回答由中智咨询提供
明帝之后
2013-07-23 · TA获得超过827个赞
知道小有建树答主
回答量:256
采纳率:66%
帮助的人:91.9万
展开全部
被调用函数的形参是指针类型int *t,所以在调用的过程中的实参要是参数的地址,传递数组名就直接是数组的值,跟地址是不一样的!!!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我并不是很美
2013-07-22 · TA获得超过140个赞
知道答主
回答量:103
采纳率:0%
帮助的人:72.4万
展开全部
数组名是数组首元素的地址,&x[i] 就是x+i。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式