c语言数组整体后移
时间: 2023-07-03 18:26:35 浏览: 379
可以使用循环和指针的方法来实现数组整体后移。具体步骤如下:
1. 定义一个指向数组最后一个元素的指针p。
2. 循环遍历整个数组,从后往前依次将每个元素向后移动n个位置,其中n是后移的位数。
3. 最后将原来指向最后一个元素的指针p向后移动n个位置。
下面是示例代码:
```c
#include <stdio.h>
void move_array(int *arr, int size, int n) {
int *p = arr + size - 1;
while (p >= arr) {
*(p + n) = *p;
p--;
}
p += n;
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr) / sizeof(int);
int n = 2;
printf("原数组:");
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
move_array(arr, size, n);
printf("移动后的数组:");
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
运行结果:
```
原数组:1 2 3 4 5
移动后的数组:0 0 1 2 3
```
需要注意的是,移动后数组的前n个元素会被填充为0,因为在整体后移的过程中,移动到第一个元素之前的位置时,前n个元素就已经超出了数组的范围。
阅读全文