求高手帮忙解释一下这个程序的功能。。最好是重要的语句注释一下,大谢!
#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个元素的地址值与传送数组名有什么不同吗. 展开
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个元素的地址值与传送数组名有什么不同吗. 展开
3个回答
展开全部
简单给你说下传址跟传值得区别吧
变量是存储在内存中的,系统在内存中开辟一块区域,存放值,然后这个区域有个地址
通过这个地址可以找到这个值
传址是传递这个变量的地址,对这个变量的操作通过地址 改变的是原来的那个址
传值是把这个变量的值传过去 ,传完后这个值得修改就不关这个变量的事了
不是同一个地址的值
变量是存储在内存中的,系统在内存中开辟一块区域,存放值,然后这个区域有个地址
通过这个地址可以找到这个值
传址是传递这个变量的地址,对这个变量的操作通过地址 改变的是原来的那个址
传值是把这个变量的值传过去 ,传完后这个值得修改就不关这个变量的事了
不是同一个地址的值
更多追问追答
追问
谢谢了。我还有个问题就是如果我把这语句exch(&x[i]);改为这语句exch(x);那他们运行结果的值有什么区别啊。。我就是搞不懂。。
追答
&x[i]是表示x数组中第i个值得地址
x的话就相当于传这个数组的首地址
前者执行完后的输出结果是
6
7
8
9
10
后者的输出结果是(应该是 )
6
6
6
6
6
中智咨询
2024-08-28 广告
2024-08-28 广告
在当今竞争激烈的商业环境中,企业需要不断提高自身的竞争力,以保持市场份额和增加利润。通过人效提升,企业可以更有效地利用有限的资源,提高生产力和效益,从而实现盈利目标。中智咨询提供全方位的组织人效评价与诊断、人效提升方案等数据和管理咨询服务。...
点击进入详情页
本回答由中智咨询提供
展开全部
被调用函数的形参是指针类型int *t,所以在调用的过程中的实参要是参数的地址,传递数组名就直接是数组的值,跟地址是不一样的!!!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
数组名是数组首元素的地址,&x[i] 就是x+i。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询