#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 ++)給出錯誤「一元中的無效左值&&」?
這是一種語言限制。同樣,你不能寫'&(a + 1)' –