| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 381 人关注过本帖
标题:指针 数组
只看楼主 加入收藏
语言呆子
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2009-4-12
结帖率:83.33%
收藏
已结贴  问题点数:10 回复次数:5 
指针 数组
题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数

函数:
  int move(int array[20],int n,int m)
{

int *p,array_end;
array_end=*(array+n-1);
for(p=array+n-1;p>array;p--)
*p=*(p-1);
*array=array_end;
m--;
if(m>0) move(array,n,m);
}


这个函数中的array_end=*(array+n-1);p=array+n-1;这两句怎么理解了,谢谢
搜索更多相关主题的帖子: 指针 
2009-10-14 10:13
语言呆子
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2009-4-12
收藏
得分:0 
补充问题:array_end=*(array+n-1);p=array+n-1;中的array有什么区别,有什么作用了
2009-10-14 10:14
UserYuH
Rank: 12Rank: 12Rank: 12
来 自:毅华
等 级:火箭侠
威 望:8
帖 子:720
专家分:3300
注 册:2009-8-10
收藏
得分:3 
array_end=*(array+n-1); /*   array+n-1 是指向最后一个数,array_end保存n个数的最后一个数 */
for(p=array+n-1;p>array;p--) /* p指向最后一个数,循环的把n-1个数往后移 */
  *p=*(p-1);  
*array=array_end;   /* 循环移动后把最后一个数放至到最前。 */


努力—前进—变老—退休—入土
2009-10-14 11:22
m456m654
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:783
专家分:2806
注 册:2009-9-17
收藏
得分:3 
举例说明:
a[10]={0,1,2,3,4,5,6,7,8,9};
首先使数组a中每个数向后移动一位,边成{?,0,1,2,3,4,5,6,7,8}
而原来数组中最后一位9被挤掉了,并且第一个位置空出来了。所以把挤掉的数赋给第一个位置的元素。
这样就实现了m=1的情况,如此进行m次移动,边得到了结果。
2009-10-14 11:38
语言呆子
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2009-4-12
收藏
得分:0 
回复 3楼 UserYuH
请问array_end=*(array+n-1);中的array起什么作用了,怎么理解
2009-10-14 15:50
玩出来的代码
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:河南新乡
等 级:贵宾
威 望:11
帖 子:742
专家分:2989
注 册:2009-10-12
收藏
得分:3 
array_end=*(array+n-1);中的array是指这个数组的首地址,array+n-1表示这个数组的最后一位

[ 本帖最后由 玩出来的代码 于 2009-10-14 16:13 编辑 ]

离恨恰如春草,更行更远还生。
2009-10-14 16:12
快速回复:指针 数组
数据加载中...
 
   



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

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