在线编译器 C

#include <stdio.h> void reverse_array(int *a, int n) { for (int i = n - 1; i >= 0; i--) { printf("%c", *(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`,它接收一个整型指针和数组长度,然后从最后一个元素开始向前遍历,用 `%c` 格式打印每个元素。主函数中创建了一个包含 1 到 5 的整型数组,并调用该函数。

- 函数中使用 `%c` 来打印整型值,这会把整数解释为 ASCII 字符。例如 1 对应的是控制字符,而不是数字 '1'。你应该考虑用 `%d` 来打印整数。
- 函数的功能是“反转数组”,但当前只是反向打印了元素,并没有真正反转数组本身。如果目标是修改数组顺序,需要思考如何交换元素位置。