C语言采用指针的方法逆置一维数组,用函数实现。加注释,并对运行结果分析
时间: 2024-11-17 09:28:44 浏览: 13
在C语言中,我们可以使用指针来逆置一个一维数组。所谓逆置就是交换数组的第一个元素和最后一个元素,然后第二个元素和倒数第二个元素,以此类推。下面是一个函数实现的例子:
```c
#include <stdio.h>
// 定义一个名为reverse_array的函数,接受数组首地址和数组长度作为参数
void reverse_array(int* arr, int length) {
// 创建两个指针,一个指向数组开始,另一个指向数组结束
int start = 0; // 指向数组起始位置
int end = length - 1; // 指向数组结束位置
// 使用循环直到start和end相遇
while (start < end) {
// 交换arr[start]和arr[end]
int temp = arr[start]; //临时保存起始位置的元素
arr[start] = arr[end]; //将起始位置的元素移到结束位置
arr[end] = temp; //将结束位置的元素移到起始位置
// 移动指针
start++; //start向前移动一位
end--; //end向后移动一位
}
}
int main() {
// 定义一个一维数组
int arr[] = {1, 2, 3, 4, 5};
int array_length = sizeof(arr) / sizeof(arr[0]); // 计算数组长度
printf("原始数组: ");
for (int i = 0; i < array_length; i++) {
printf("%d ", arr[i]);
}
printf("\n");
// 反转数组
reverse_array(arr, array_length);
printf("逆置后的数组: ");
for (int i = 0; i < array_length; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
**运行结果分析**:
1. 在`main`函数中,首先声明了一个包含数字1到5的一维数组`arr`。
2. 然后计算数组的实际长度并通过`reverse_array`函数逆置数组内容。
3. 逆置数组前,输出原始数组,可以看到1 2 3 4 5。
4. 逆置数组后再次输出,可以看到5 4 3 2 1,即数组元素已经被逆序排列了。
阅读全文