使用指针的方式实现数组逆序 您所在的位置:网站首页 用函数将数组逆序 使用指针的方式实现数组逆序

使用指针的方式实现数组逆序

2024-04-10 00:16| 来源: 网络整理| 查看: 265

在前面,我们通过让数组首位交换的方式,实现了数组的逆序,那,在学习了指针之后,我们该如何运用指针实现数组的逆序呢。

同样的,我们的思路还是使用首位对应交换的方式,只不过,在此时,我们可以选用指针代替数组的首尾元素了

 

#include

 

int main()

{

int a[10] = {1,2,3,4,5,6,7,8,9,10};

int *p1 = a;                              // 指向数组的第一个元素下标

int *p2 = a + sizeof(a)/sizeof(a[0]) - 1;         // 求出最后一个元素的下标

 

while (p1 < p2)

{

int tmp = *p1;

*(p1++) = *p2;

*(p2--) = tmp;

}

int i;

for (i = 0; i < 10; i++)

{

printf ("%4d", a[i]);

}

printf ("\n");

return 0;

}

 

程序里,我们的大致过程还是和以前一样,没有什么多大的变化的,唯一不同的是我们使用了指针代替了数组,使用指针代替数组的好处就是,当数组里的元素发生变化时,我们的指针所指的地址可是不会变化,这就使我们的操作变得稳定。在使用sizeof求最后一个元素的下标中,sizeof这个关键字,是用来求空间大小的一个关键字,它能告诉我们,我们所使用的一个变量所占的空间大小。因为sizeof(a)求出了整个数组所占用的空间,当/它的类型时,我们就可以得到数组a的长度了,同时由于数组的下标都是从0开始的所以在计算最后一个元素的下标时,一定要记得减一。

最后显示的结果为:  10   9   8   7   6   5   4   3   2   1

是不是已经完全逆序过来了呢。动手来操作一下吧!



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有