用指针将数组中的元素逆序存放
时间: 2023-11-28 21:49:22 浏览: 250
可以使用两个指针分别指向数组的头和尾,然后交换它们指向的元素,直到两个指针相遇为止。具体代码如下:
```c
void reverse(int *arr, int n) {
int *start = arr;
int *end = arr + n - 1;
while (start < end) {
int temp = *start;
*start = *end;
*end = temp;
start++;
end--;
}
}
```
其中,`arr` 是指向数组首元素的指针,`n` 是数组长度。在函数中,我们使用 `start` 和 `end` 分别指向数组的头和尾,然后不断交换两个指针指向的元素,直到两个指针相遇为止。在交换元素时,我们需要用一个临时变量 `temp` 来存储一个指针指向的元素,否则会出现数据丢失的问题。
相关问题
用c语言将数组中元素逆序存放
在 C 语言中,你可以通过两层循环来实现数组元素的逆序存放。一种常见的做法是使用临时变量交换相邻的元素。以下是简单的步骤:
1. 定义一个函数,通常命名为 `reverse_array` 或 `invert_array`,接收两个参数,数组的头指针 `array` 和数组长度 `size`。
```c
void reverse_array(int array[], int size) {
```
2. 使用两个指针,一个从数组开始 (`start = 0`),另一个从数组结尾向开始移动 (`end = size - 1`)。
3. 进入一个 while 循环,只要 start 小于 end,就继续交换 `array[start]` 和 `array[end]` 的值。
```c
while (start < end) {
int temp = array[start];
array[start] = array[end];
array[end] = temp;
start++;
end--;
}
```
4. 函数结束,数组就被逆序了。
5. 如果需要,在主程序中调用这个函数,传递你的整型数组和它的大小。
```c
int main() {
int arr[] = {1, 2, 3, 4, 5};
int len = sizeof(arr) / sizeof(arr[0]);
reverse_array(arr, len);
// 现在 arr 会被倒序,比如 [5, 4, 3, 2, 1]
return 0;
}
```
c语言将数组中元素逆序存放
在C语言中,要将数组元素逆序存放,可以采用两层循环的方式,外层遍历数组的开始部分,内层遍历剩余未处理的部分,交换两个指针所指向的元素。以下是简单的步骤:
1. 初始化两个指针,一个从数组的起始位置(index = 0),另一个从数组的结束位置减一(index = array_length - 1)。
2. 当外层指针小于内层指针时,执行以下操作:
a. 交换array[index]和array[index+1]的值。
b. 内部指针减一(index++)。
c. 外部指针加一(index++)。
3. 循环结束后,数组的第一个元素到最后一个元素就被逆序排列了。
下面是一个简单的示例代码片段:
```c
#include <stdio.h>
void reverse_array(int arr[], int length) {
int start = 0;
int end = length - 1;
while (start < end) {
int temp = arr[start]; // 保存当前元素
arr[start] = arr[end];
arr[end] = temp; // 交换两端元素
start++; // 移动到下一个元素
end--; // 移动到前一个元素
}
}
int main() {
int array[] = {1, 2, 3, 4, 5};
int array_length = sizeof(array) / sizeof(array[0]);
printf("Original array: ");
for (int i = 0; i < array_length; i++) {
printf("%d ", array[i]);
}
reverse_array(array, array_length);
printf("\nReversed array: ");
for (int i = 0; i < array_length; i++) {
printf("%d ", array[i]);
}
return 0;
}
```
运行这个程序,你会看到原数组的元素顺序发生了反转。
阅读全文