用指针实现将一个含有10个数的数组逆序存放
时间: 2024-06-13 13:09:19 浏览: 103
以下是使用指针将一个含有10个数的数组逆序存放的示例代码:
```c
#include <stdio.h>
void reverse(int *arr, int len) {
int *p1 = arr, *p2 = arr + len - 1;
while (p1 < p2) {
int temp = *p1;
*p1 = *p2;
*p2 = temp;
p1++;
p2--;
}
}
int main() {
int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
reverse(arr, 10);
for (int i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
相关问题
将一个含有n个元素的一维数组逆序存放
将一个含有n个元素的一维数组逆序存放的方法是:从数组的两端开始,依次交换对应位置的元素,直到中间位置。具体步骤如下:
1. 定义两个指针,一个指向数组的第一个元素,另一个指向数组的最后一个元素。
2. 交换两个指针所指向的元素,并将指针向中间移动一位。
3. 重复步骤2,直到两个指针相遇。
4. 数组逆序存放完成。
例如,对于一个含有5个元素的数组arr,初始状态为[1, 2, 3, 4, 5],按照上述方法逆序存放后,数组变为[5, 4, 3, 2, 1]。
采用指针法实现字符数组逆序存放
可以通过指针法来实现字符数组逆序存放,具体步骤如下:
1. 定义一个字符数组并赋值;
2. 定义两个指针,分别指向数组的首尾位置;
3. 使用循环将指针交换位置,直到两个指针相遇为止;
4. 输出逆序后的字符数组。
示例代码如下:
```c
#include <stdio.h>
#include <string.h>
void reverse(char *str) {
char *p1, *p2;
p1 = str;
p2 = str + strlen(str) - 1;
while (p1 < p2) {
char temp = *p1;
*p1 = *p2;
*p2 = temp;
p1++;
p2--;
}
}
int main() {
char str[] = "hello world";
printf("Original string: %s\n", str);
reverse(str);
printf("Reversed string: %s\n", str);
return 0;
}
```
输出结果为:
```
Original string: hello world
Reversed string: dlrow olleh
```
阅读全文