龙空技术网

C语言100题集合018-用指针实现逆序存放数组元素的值

A大不留 44

前言:

目前我们对“c语言中逆序存放数组中的数据并输出指定元素”都比较注重,朋友们都需要学习一些“c语言中逆序存放数组中的数据并输出指定元素”的相关知识。那么小编同时在网摘上网罗了一些关于“c语言中逆序存放数组中的数据并输出指定元素””的相关文章,希望大家能喜欢,你们快快来学习一下吧!

系列文章《C语言经典100例》持续创作中,欢迎大家的关注和支持。

喜欢的同学记得点赞、转发、收藏哦~

后续C语言经典100例将会以pdf和代码的形式发放到公众号

欢迎关注:计算广告生态 即时查收

1 题目

函数:invert()

功能:用指针实现逆序存放数组元素的值

描述:使用指针将数组中的元素值逆序放置,并且将结果打印出来

2 思路1. 程序变量中两个数字进行交换的三种方法

第一种:引入一个中间量

temp=a;a=b;b=temp;

第二种:要注意的是a+b可能会超过int的范围,这个是该方法的缺点

a=a+b;b=a-b;a=a-b;

第三种:这种方法效率最高,推荐使用

a=a^b;b=a^b;a=a^b;
2. 指针的使用

使用指针对数组内容进行操作,数组 a, a 指向数组首位置,a+N-1 指向最后一位。从而利用循环对数组的首尾数字逐个替换

3 代码

#include <stdio.h> #include <stdlib.h>#define N 10/**函数:invert()功能:用指针实现逆序存放数组元素的值描述:使用指针将数组中的元素值逆序放置,并且将结果打印出来**/void invert(int *a) { int *begin, *end, mid;   // 定义首尾指针 begin = a;  end = a+N-1; mid = (N-1)/2;       // 中间位置 int temp; for (int i = 0; i <= mid; ++i){ // 循环,首尾指针内容变换  // temp = *begin;  // *begin = *end;  // *end = temp;  *begin = *begin ^ *end;  *end = *begin ^ *end;  *begin = *begin ^ *end;  ++begin;  --end; }}int main(int argc, char const *argv[]) {  int a[N] = {1,2,3,4,5,6,7,8,9,10}; printf("当前数组中的值为:"); for (int i = 0; i < N; ++i) {  printf("%d ", *(a+i)); } printf("\n");  invert(a); printf("使用指针逆序后数组中的值为:"); for (int i = 0; i < N; ++i) {  printf("%d ", *(a+i)); } printf("\n");}

示例结果:

$ gcc ex018.c -o demo$ ./demo当前数组中的值为:1 2 3 4 5 6 7 8 9 10使用指针逆序后数组中的值为:10 9 8 7 6 5 4 3 2 1

--END--

喜欢本文的同学记得点赞、转发、收藏~

更多内容,欢迎大家关注我们的公众号:计算广告生态

后续C语言经典100例将会以pdf和代码的形式发放到公众号

同时也带来更多系列文章以及干货❤️!

标签: #c语言中逆序存放数组中的数据并输出指定元素 #数组逆序存放c语言 #c语言逆序输出数组元素