正确:
void swap(char &a,char &b)
{
int x=a,y=b;
x=x+y;
y=x-y;
x=x-y;
a=x;
b=y;
}
错误:
void swap (char *a,char *b)
{
x=x+y;
y=x-y;
x=x-y;
*a=x;
*b=y;
}
int main()
{
char a='a';
char b='b';
char &x=a;
char &y=b;
swap (x,y);
}
正确:
void swap(char &a,char &b)
{
int x=a,y=b;
x=x+y;
y=x-y;
x=x-y;
a=x;
b=y;
}
错误:
void swap (char *a,char *b)
{
x=x+y;
y=x-y;
x=x-y;
*a=x;
*b=y;
}
int main()
{
char a='a';
char b='b';
char &x=a;
char &y=b;
swap (x,y);
}