在线编译器 C

#include <stdio.h> void reverse_array(int *a, int n) { int *left = a; int *right = a + n - 1; int temp; while (left < right) { temp = *left; *left = *right; *right = temp; left++; right--; } }
这段代码定义了一个函数 `reverse_array`,它使用指针来反转一个整数数组。函数接收数组首地址 `a` 和元素个数 `n`,通过两个指针 `left` 和 `right` 分别指向数组首尾,然后交换它们指向的值,并向中间移动,直到两个指针相遇。

- 检查 `while` 循环的条件:当数组元素个数为偶数时,`left < right` 能正确结束循环;但当元素个数为奇数时,中间元素会被交换两次吗?思考一下指针移动的最终状态。
- 注意函数没有返回值,也没有输出结果。如果这是完整程序的一部分,需要确认调用者是否正确地打印了反转后的数组。