用c语言通过指针传递实现将一数组中的数据按相反顺序存放
时间: 2023-04-07 15:01:42 浏览: 647
可以使用以下代码实现:
void reverse(int *arr, int size) {
int *start = arr;
int *end = arr + size - 1;
while (start < end) {
int temp = *start;
*start = *end;
*end = temp;
start++;
end--;
}
}
其中,arr是指向数组的指针,size是数组的大小。通过指针操作,将数组中的数据按相反顺序存放。
相关问题
C语言,用指针方法实现将数组a中n个整数按照相反顺序存放。
可以通过定义两个指针,分别指向数组的首尾元素,然后交换它们的值,依次向中间逼近来实现将数组中的元素按相反顺序存放。以下是示例代码:
```c
#include <stdio.h>
void reverse_array(int *a, int n) {
int *p = a, *q = a + n - 1;
while (p < q) {
int temp = *p;
*p = *q;
*q = temp;
p++;
q--;
}
}
int main() {
int a[] = {1, 2, 3, 4, 5};
int n = sizeof(a) / sizeof(a[0]);
printf("Original array: ");
for (int i = 0; i < n; i++) {
printf("%d ", a[i]);
}
printf("\n");
reverse_array(a, n);
printf("Reversed array: ");
for (int i = 0; i < n; i++) {
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
```
输出结果为:
```
Original array: 1 2 3 4 5
Reversed array: 5 4 3 2 1
```
将数组中n个整数按相反顺序存放,用指针变量做实参 c语言
可以使用指针变量作为实参,通过指针操作实现将数组中n个整数按相反顺序存放的功能。
以下是示例代码:
```c
#include <stdio.h>
void reverse(int *arr, int n) {
int *p1 = arr;
int *p2 = arr + n - 1;
while (p1 < p2) {
int temp = *p1;
*p1 = *p2;
*p2 = temp;
p1++;
p2--;
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = sizeof(arr) / sizeof(int);
printf("Before reverse: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
reverse(arr, n);
printf("After reverse: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
在这个示例中,reverse 函数接受两个参数,第一个参数是指向数组的指针,第二个参数是数组的长度。函数内部使用两个指针 p1 和 p2 分别指向数组的开头和结尾,然后交换它们所指向的元素,直到 p1 和 p2 相遇为止,即完成了数组元素的反转。在 main 函数中,先输出原数组,然后调用 reverse 函数,再输出反转后的数组。