使用指针实现数组元素逆序存放
时间: 2023-12-14 11:21:02 浏览: 57
可以使用两个指针分别指向数组的首尾元素,然后交换它们所指向的元素,直到两个指针相遇为止。下面是具体的代码实现:
```c
void reverse_array(int *arr, int size) {
int *left = arr;
int *right = arr + size - 1;
while (left < right) {
int temp = *left;
*left = *right;
*right = temp;
left++;
right--;
}
}
```
其中,`arr`是指向数组首元素的指针,`size`是数组的长度。使用指针的优点是可以避免数组复制带来的额外开销,同时也能够更方便地进行数组元素的操作。
相关问题
C语言使用指针实现数组元素逆序存放
可以使用指针实现数组元素逆序存放,具体步骤如下:
1. 定义一个数组,并初始化数组元素。
2. 定义两个指针变量,分别指向数组的首地址和尾地址。
3. 使用 while 循环,交换首尾指针所指向的元素,并将首指针向后移动一位,尾指针向前移动一位,直到首尾指针相遇或者首指针大于等于尾指针为止。
下面是代码示例:
```c
#include <stdio.h>
int main()
{
int arr[] = {1, 2, 3, 4, 5, 6, 7, 8};
int len = sizeof(arr) / sizeof(int);
int *p1 = arr; // 指向数组首地址的指针
int *p2 = arr + len - 1; // 指向数组尾地址的指针
while(p1 < p2)
{
int temp = *p1;
*p1 = *p2;
*p2 = temp;
p1++;
p2--;
}
// 打印逆序后的数组
for(int i = 0; i < len; i++)
{
printf("%d ", arr[i]);
}
return 0;
}
```
输出结果为:
```
8 7 6 5 4 3 2 1
```
C语言写用指针将数组的元素逆序存放
可以使用以下代码将数组元素逆序存放:
```
void reverse_array(int *arr, int size){
int temp;
for(int i = 0; i < size / 2; i++){
temp = *(arr + i);
*(arr + i) = *(arr + size - i - 1);
*(arr + size - i - 1) = temp;
}
}
```
其中,`arr`是传入的数组的指针,`size`是数组的大小。循环中的代码将数组的第一个元素和最后一个元素交换,第二个元素和倒数第二个元素交换,以此类推,就可以将数组元素逆序存放。
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![text/plain](https://img-home.csdnimg.cn/images/20210720083646.png)