| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 444 人关注过本帖
标题:请帮下忙
只看楼主 加入收藏
chuexuezhe
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2008-9-27
收藏
 问题点数:0 回复次数:1 
请帮下忙
void inv(int *x,int n)   /*形参x为指针变量*/
{
 int *p,temp,*i,*j,m=(n-1)/2;
 i=x;j=x+n-1;p=x+m;   主要是这里不明白 i=x 不就是x里面存储的地址给i 让i也指像a[10] 但j=x+n-1 这个我就不明白了  难道内存的地址相加 这不乱了吗 也应该是*j=*x+n-1是
 for(;i<=p;i++,j--)  还有这里 这样写是什么意思呢
{temp=*i;*i=*j;*j=temp;}
 return;
}
main()
{int i,a[10]={3,7,9,11,0,6,7,5,4,2};
 printf("The original array:\n");
 for(i=0;i<10;i++)  
   printf("%d,",a[i]);
 printf("\n");
 inv(a,10);
 printf("The array has benn inverted:\n");
 for(i=0;i<10;i++)
  printf("%d,",a[i]);
 printf("\n");
}

[[it] 本帖最后由 chuexuezhe 于 2008-10-22 14:03 编辑 [/it]]
搜索更多相关主题的帖子: original return 
2008-10-22 14:00
wcn1990
Rank: 1
等 级:新手上路
帖 子:13
专家分:3
注 册:2008-10-22
收藏
得分:0 
“for(;i<=p;i++,j--)  还有这里 这样写是什么意思呢?” 对于指针的+1或-1 是在地址的基础上向左或右移一位,而非单纯的在数值或地址值上加1或减1。至于i与j可理解为是从数组两端开始的两数组元素的地址分别向中间移位,每移一次进行一次交换,最终将整个数组倒置。
“i=x;j=x+n-1;p=x+m;   主要是这里不明白 i=x 不就是x里面存储的地址给i 让i也指像a[10] 但j=x+n-1 这个我就不明白了  难道内存的地址相加 这不乱了吗 也应该是*j=*x+n-1是”这个和上面的一样也是对变量按地址移位,而非是简单的地址加1或减1.
  建议一下可参见一本好的教材《c program language》也叫《c程序设计语言》机械工业大学的,是c的创始人编写的,超好。
2008-10-22 14:50
快速回复:请帮下忙
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016268 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved