#include <stdio.h>
int main()
{
int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int m = 3;
int n = sizeof(a) / 4;
int i;
int *p;
for(i=0; i<m; i++){
p = a + n-1;
//保存10
int temp;
temp = *p;
//10前面的元素一次往后移动
while(p>a){
*p = *(p-1);
p--;
}
//把10放到第一个位置
*p = temp;
}
for(p=a; p<a+10; p++){
printf("%-4d", *p);
}
printf("\n");
return 0;
}
-
思路:
1先移动一次
保存数组最后一个元素值
将数组元素一次往后移动一个位置
把保存的最后一个元素值放到数组第一个位置上
2循环移动m次
-
用指针操作数组元素
-
数组名
- 数组名存放的是地址,是常量(不可被赋值),不可更改,
-
多多尝试用指针操作数组