c 语言指针数组逆序显示
时间: 2023-09-30 16:10:06 浏览: 244
假设有一个指针数组`int* arr[N]`,其中每个指针指向一个整型数值。要求将这个指针数组逆序显示,可以使用以下代码实现:
```c
void reverse(int* arr[], int n) {
for(int i = 0; i < n/2; i++) {
int* temp = arr[i];
arr[i] = arr[n-i-1];
arr[n-i-1] = temp;
}
}
int main() {
int a = 1, b = 2, c = 3;
int* arr[3] = {&a, &b, &c};
reverse(arr, 3);
for(int i = 0; i < 3; i++) {
printf("%d ", *arr[i]);
}
return 0;
}
```
首先定义了一个`reverse`函数,接收一个指针数组和数组长度,通过循环交换数组中的指针,实现了逆序。然后在主函数中,定义了一个包含三个整型变量地址的指针数组,并将其传入`reverse`函数中,最后循环输出逆序后的数组内容。
相关问题
c语言一维数组逆序
对于一个一维数组,可以使用双指针的方式将其逆序。具体做法是,定义两个指针,一个指向数组的首元素,另一个指向数组的尾元素,然后交换它们所指向的元素,直到两个指针相遇为止。下面是示例代码:
```c
void reverse(int arr[], int size) {
int left = 0;
int right = size - 1;
while (left < right) {
int temp = arr[left];
arr[left] = arr[right];
arr[right] = temp;
left++;
right--;
}
}
```
在这个示例代码中,`arr` 表示需要逆序的数组,`size` 表示数组的长度。函数中使用了 `left` 和 `right` 两个指针来遍历数组,并不断交换它们所指向的元素,直到两个指针相遇为止。
用指针数组逆序排列c语言
使用指针数组逆序排列C语言可以通过以下步骤实现:
1. 声明一个指针数组,并初始化数组元素为需要逆序排列的数据。
2. 使用两个指针变量,一个指向数组的第一个元素,另一个指向数组的最后一个元素。
3. 使用循环交换指针所指向的元素,并将两个指针向中间移动,直到它们相遇为止。
4. 循环结束后,指针数组中的元素就被逆序排列了。
下面是一个示例代码:
```c
#include <stdio.h>
void reverseArray(int* arr[], int size) {
int* start = arr[0];
int* end = arr[size - 1];
while (start < end) {
int* temp = *start;
*start = *end;
*end = temp;
start++;
end--;
}
}
int main() {
int num1 = 1, num2 = 2, num3 = 3;
int* arr[] = { &num1, &num2, &num3 };
int size = sizeof(arr) / sizeof(arr[0]);
printf("原始数组:");
for (int i = 0; i < size; i++) {
printf("%d ", *arr[i]);
}
reverseArray(arr, size);
printf("\n逆序排列后的数组:");
for (int i = 0; i < size; i++) {
printf("%d ", *arr[i]);
}
return 0;
}
```
运行以上代码,输出结果为:
```
原始数组:1 2 3
逆序排列后的数组:3 2 1
```
阅读全文