指针实现数组循环移动
时间: 2025-06-15 22:18:13 浏览: 10
指针是一种非常有效的工具,特别是在处理数组时,可以用于实现数组元素的循环移动。通过指针,我们可以指向数组的第一个元素,并通过加法操作逐个访问数组中的下一个元素,直到遍历完整个数组。
以下是一个简单的例子来说明如何使用指针在C语言中实现数组元素的顺时针循环移动:
```c
#include <stdio.h>
void circularShift(int* arr, int size) {
// 使用指针指向第一个元素
int* current = arr;
// 当前元素索引
int index = 0;
// 循环直到遍历完数组
while (index < size - 1) {
// 移动指针到下一个位置
*current = arr[index + 1];
// 更新当前元素索引
index++;
// 将最后一个元素移到第一个位置
if (index == size - 1) {
*current = arr[0]; // 或者更直接地,*arr++ = *current; // 自增指针并更新值
}
// 继续迭代
}
}
int main() {
int array[] = {1, 2, 3, 4, 5};
int size = sizeof(array) / sizeof(array[0]);
printf("Before shifting: ");
for (int i = 0; i < size; i++) {
printf("%d ", array[i]);
}
circularShift(array, size);
printf("\nAfter circular shift: ");
for (int i = 0; i < size; i++) {
printf("%d ", array[i]);
}
return 0;
}
```
在这个示例中,`circularShift`函数接受一个整数数组和它的大小作为参数,然后通过改变数组首元素的指向,实现了数组元素的循环右移。运行上述代码后,你会看到原数组顺时针旋转了一个位置。
阅读全文
相关推荐


















