#include<stdio.h>
int swap(int *a,int *b);
int main()
{
int a=10,b=20;
swap(&a++,&b++);
printf("a=%d\nb=%d",a,b);
return 0;
}
int swap(int *a,int *b)
{
int temp;
temp=*a;
*a=*b;
*b=temp;
}
为什么这个函数会给出错误“invalid lvalue in unary '&'”?正常swap(&a,&b)
工作正常,但swap(&a++,&b++)
也会swap(&(a++),&(b++))
出错。这背后的原因是什么?