#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;
}
この関数で「単項'&'の左辺値が無効です」というエラーが発生するのはなぜですか?通常は正常にswap(&a,&b)
動作swap(&a++,&b++)
しますが、swap(&(a++),&(b++))
エラーが発生します。この背後にある理由は何ですか?