关于数组的指针交换的问题
# include <stdio.h># include <stdlib.h>
void main()
{
int a[5] = {1,2,3,4,5};
int *p,*q,i;
int * temp ;
//第1种交换方式,提示错误。
temp = a+1;
a+1 = a+2; // error:编译的时候提示,表达式必须是可修改的左值。
a+2=temp;
// 第2种交换方式,是正确的。
p = a+1;
q = a+2;
temp = p;
p = q;
q = temp;
for(i = 0;i<1;i++)
{
printf("%5d,%5d",*a+1,*a+2);
}
printf("\n");
system("pause");
}
请问这两个方式的区别在那里?