#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void swap(int *iX, int *iY)
{
*iY = *iX ^ *iY;
*iX = *iX ^ *iY;
*iY = *iX ^ *iY;
// printf("%3d, %3d\n", *iX, *iY);
}
int main(int argc, char **argv)
{
int aiArry[] = {1, 2, 3, 4, 5, 6, 7, 8};
int iBegin, iEnd;
int iLen = sizeof(aiArry)/sizeof(int);
/* 若条件为iBegin < = iEnd,则会导致中间元素为0。
* 因为交换的两个地址一样,swap函数的第一个语句会将该地址的内容置为0,从而导致中间元素为0 */
for (iBegin = 0, iEnd = iLen - 1; iBegin < iEnd; iBegin++ , iEnd--)
{
swap(&aiArry[iBegin], &aiArry[iEnd]);
}
#if 1
for (iBegin = 0; iBegin < iLen; iBegin++)
{
printf("%3d", aiArry[iBegin]);
}
#endif
return 0;
}
数组元素首尾对调
最新推荐文章于 2024-07-18 10:40:32 发布