请问这个c语言程序函数如何解读?

voidmove(int*a,intn,intm){int*p,array;array=*(a+n-1);for(p=a+n-1;p>a;p--)*p=*(p-1);*a... void move(int* a, int n, int m)
{

int* p, array;
array = *(a + n - 1);
for (p = a + n - 1; p > a; p--)
*p = *(p - 1);
*a = array;
m--;
if (m > 0)
move(a, n, m);
}
展开
 我来答
参观西湖
2021-01-14 · 古籍有很多,写出来一起欣赏。
参观西湖
采纳数:919 获赞数:2312

向TA提问 私信TA
展开全部

这个函数的功能,就是把一个数组的所有元素向后移动,被移出的末位元素,填回到首位

void move(int* a, int n, int m){//a:数组首地址,n,数组元素个数,m,需要移动几次
int* p, array;
array = *(a + n - 1);// 把数组a的末位元素保存到变量array里面
for (p = a + n - 1; p > a; p--)//指针p指向数组的末位元素,循环开始
*p = *(p - 1);            //把前一位元素(p-1)的值复制到当前位置p
*a = array;             //再把array里面存储的值填回数组首位(a)。
m--;                      //移动次数减1
if (m > 0)              //m减为0表示移动完成,否则继续
move(a, n, m);     //如果未完成移动,再来一次。
}

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式