一.将整形数组arr中,后面m个数移动到前面,前面n-m个数移动到后面
假设arr数组长度为10,其中元素为{1,2,3,4,5,6,7,8,9,10},m=3;
先将后面这m个元素保存起来,
int *p=(int *)malloc(m*sizeof(int));
for(int i=0;i<m;i++)
{
p[i]=arr[n-m+i];
}
然后从右边往左依次将这n-m个元素向右移动m个格子,(不能从左往右将这n-m个元素向右移动m个格子)
如果从左往右将这n-m个元素向右移动m个格子,
中间这四个元素会发生内存重叠问题,导致移动元素错误
for(int i=n-m-1;i>=0;i--)
{
arr[i+m]=arr[i];
}
<