嵌套调用实现数组元素逆序存放
- IT业界
- 2025-09-09 21:36:02

主函数调用reverse_array(int ptr[],int cnt)函数,该函数在调用inplace_swap(int *x,int *y)函数时,把两个不同的地址送给inplace_swap(int *x,int *y)函数,实现这两个位置处元素的交换。
令*x=a,*y=b
则*y= *x^*y执行后,*x=a,*y=a^b.
然后,*x= *x^*y执行后,*x=a^(a^b)=b,*y=a^b.
最后,*y= *x^*y执行后,*x=b,*y=b^(a^b)=a.
两个不同位置处的数实现交换。
源程序
void reverse_array(int ptr[],int cnt); void inplace_swap(int *x,int *y);
void main() { int array[]={1,2,3,4,5,6,7}; int cnt=sizeof(array)/sizeof(array[0]); reverse_array(array,cnt); }
void reverse_array(int ptr[],int cnt) { int first,last; for(first=0,last=cnt-1;first<last;first++,last--) inplace_swap(&ptr[first],&ptr[last]); }
void inplace_swap(int *x,int *y) { *y= *x^*y; *x= *x^*y; *y= *x^*y; } 当然,把inplace_swap(int *x,int *y)的函数体放在reverse_array(int ptr[],int cnt)中,整体结构就会简单一些,但reverse_array(int ptr[],int cnt)函数的功能就复杂一些。
嵌套调用实现数组元素逆序存放由讯客互联IT业界栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“嵌套调用实现数组元素逆序存放”
上一篇
springboot-自定义注解
下一篇
vue不是内部或外部命令?