c语言使用指针完成逆序输出
时间: 2023-08-07 08:08:21 浏览: 109
可以使用指针来实现一个逆序输出的函数,具体实现如下:
```c
#include <stdio.h>
void reverse_print(char *str){
if(*str == '\0')
return;
reverse_print(str+1); // 递归调用
printf("%c", *str);
}
int main(){
char str[] = "hello world";
reverse_print(str);
return 0;
}
```
在这个例子中,使用递归的方式来实现逆序输出。函数 `reverse_print` 传入一个指向字符串的指针 `str`,如果当前指针指向的字符是字符串的结束符 `\0`,则返回。否则,递归调用 `reverse_print` 函数传入指针 `str+1`,也就是指针指向下一个字符的位置,直到指针指向字符串结束符。最后,再依次输出每个字符即可。
相关问题
c语言 使用指针逆序输出数组
在 C 语言中,可以使用指针逆序输出数组。首先,我们需要创建两个指针,一个指向数组的开始(通常称为`start`),另一个从数组的末尾开始向后移动(通常称为`end`)。然后循环地交换这两个指针所指向的元素,直到它们相遇或越过。这里是一个简单的示例:
```c
#include <stdio.h>
void reverse_array(int* arr, int size) {
if (size <= 1) return; // 如果数组只有一个元素或者为空,无需反转
int start = 0; // 指向数组起始位置
int end = size - 1; // 指向数组结束位置
while (start < end) { // 当start小于end时继续
int temp = arr[start]; // 临时存储start位置的元素
arr[start] = arr[end]; // 将end位置的元素赋值给start
arr[end] = temp; // 将临时的temp值赋给end位置
start++; // start向前移动一位
end--; // end向后移动一位
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = sizeof(arr) / sizeof(arr[0]);
printf("Original Array: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
reverse_array(arr, n);
printf("\nReversed Array: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]); // 输出逆序后的数组
}
return 0;
}
```
在这个例子中,`reverse_array`函数接受一个整型数组和其大小,然后通过指针操作实现了数组的逆序。运行程序后,会先显示原数组,然后显示逆序后的数组。
C语言用指针逆序输出数组
在C语言中,你可以使用指针和数组的特点来逆序输出数组元素。这里是一个简单的示例,假设我们有一个整型数组`arr`,我们可以创建两个指针`start`和`end`,分别指向数组的第一个元素和最后一个元素,然后通过循环交换它们所指向的值并移动指针,直到两者相遇。
```c
#include <stdio.h>
void reverseArray(int* arr, int size) {
// 定义指针 start 和 end 分别指向数组首尾
int *start = arr;
int *end = arr + size - 1;
// 当 start 小于等于 end 时,继续交换元素
while (start < end) {
// 临时存储 start 指向的值
int temp = *start;
// 把 end 的值赋给 start,并移动 start
*start++ = *end--;
// 把临时值赋给 end,并移动 end
*end = temp;
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = sizeof(arr) / sizeof(arr[0]);
printf("Original array: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
// 反转数组
reverseArray(arr, n);
printf("\nReversed array: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
运行这个程序,你会看到原数组和其逆序的结果。
阅读全文