再去c语言中通过指针及函数调用,将数组a中的7个字母{s,c,z,a,m,n,k}按相反顺序存放
时间: 2024-05-04 18:20:46 浏览: 63
可以使用指针和函数来实现将数组中的元素按相反顺序存放。具体实现步骤如下:
1. 定义一个指向字符类型的指针变量p,让它指向数组a的第一个元素。
2. 定义一个整型变量i,并初始化为0。
3. 定义一个函数reverse,函数的参数是指向字符类型的指针变量p和整型变量len,表示数组的长度。
4. 在函数内部,使用循环将数组中的元素按相反顺序存放。具体实现步骤如下:
- 定义一个指向字符类型的指针变量q,让它指向数组a的最后一个元素。
- 使用循环遍历数组a,将a[i]和q所指向的元素交换位置。
- 每次循环,i自增1,q向前移动一位。
- 当i>=len/2时,停止循环。
5. 在主函数中,调用reverse函数,将数组a中的元素按相反顺序存放。
下面是完整的代码实现:
```c
#include <stdio.h>
void reverse(char *p, int len) {
char *q = p + len - 1; // 指向数组最后一个元素
while (p < q) {
char temp = *p;
*p = *q;
*q = temp;
p++;
q--;
}
}
int main() {
char a[] = {'s', 'c', 'z', 'a', 'm', 'n', 'k'};
int len = sizeof(a) / sizeof(char);
printf("Original array: ");
for (int i = 0; i < len; i++) {
printf("%c ", a[i]);
}
printf("\n");
reverse(a, len);
printf("Reversed array: ");
for (int i = 0; i < len; i++) {
printf("%c ", a[i]);
}
printf("\n");
return 0;
}
```
输出结果为:
```
Original array: s c z a m n k
Reversed array: k n m a z c s
```
阅读全文