C语言实现快速翻转数组的顺序

时间:2022-02-26 14:26:02
#include <stdio.h>

void Reverse(int *p , int size)
{
    int i  , tmp;
    for(i = 0 ; i < size/2 ; i++)
    {
         tmp = p[i] ;
         p[i] = p[size-1-i] ;
         p[size-1-i] = tmp ;
    }
}

int main(void)
{

    int i ;
    int buffer[] = {1,2,3,4,5,6,7} ;
    Reverse(buffer,7);
    for(i = 0 ; i < 7 ; i++)
    {
        printf("buffer[%d]:%d\n",i,buffer[i]);
    }
    while(1);
	getchar();
	return 0 ;
} 

它的运行结果就是把数组从7开始往1这个方向遍历,也就是输出是倒序的。那么有什么用了?在嵌入式开发中,比如我们曾经写过的单片机花样流水灯,我们通常会写个数组从前往后走灯。如果先从前往后,再从后往前就可以用到这样的一个算法啦,非常简单,也非常好理解。