#define TYPE char
void replace_element(TYPE *a,TYPE *b)
{
if (a != b) {
*b=*a^*b;
*a=*a^*b;
*b=*a^*b;
}
}
void replace_array(TYPE array[],unsigned int len)
{
unsigned int first,last;
for(first=0,last=len-1;first<last;first++,last--)
{
replace_element(&array[first],&array[last]);
}
}
但要记住,位运算不能用于浮点型。
更加严谨的做法是:
#define TYPE char
void replace_element(TYPE *a,TYPE *b)
{
if(a!=b)
{
*b=*a^*b;
*a=*a^*b;
*b=*a^*b;
}
}
void replace_array(TYPE array[],unsigned int len)
{
unsigned int first,last;
for(first=0,last=len-1;first<last;first++,last--)
{
replace_element(&array[first],&array[last]);
}
}