Онлайн компилятор C

#include <stdio.h> void reverse_array(int *a, int n) { for (int i = n - 1; i >= 0; i--) { printf("%d ", *(a + i)); } } int main() { int n = 5; int s[] = {1, 2, 3, 4, 5}; int *a = s; reverse_array(a, n); return 0; }
这段代码定义了一个函数 `reverse_array`,它接收一个整型指针和数组长度,然后从最后一个元素开始向前遍历并打印每个元素。主函数中创建了一个数组 `s` 并调用该函数,最终会按逆序输出数组内容。

- 函数 `reverse_array` 只是打印了逆序的元素,但没有真正修改数组本身。如果你希望数组本身被反转(即元素顺序在内存中改变),那么当前代码只完成了输出,没有做实际的反转操作。
- 在 `reverse_array` 中,你使用了 `*(a + i)` 来访问元素,这等价于 `a[i]`。注意循环从 `n-1` 到 `0` 是合理的,但如果你要原地反转数组,需要交换对称位置的元素,而不是仅仅打印。