注意a==0与a=0是不一样的。
你是为了比较,一不小心写成a=0你就杯具了,所以改成数字在前,是为了防止把==误写成=
是a[0]=a[1]吧?表示把a[1]的值赋给a[0],
即是让数组里面的第一个值a[0]等于数组的第二个值a[1]
比如:
int a[3]={1,3,5} //数组里面有3个值1,3,5
a[0]=a[1]//把a[1]的值赋给a[0]
最后数组里面的三个值就变成了{3,3,5}了
&a[0]++是错误语句,编译都不会过。因为++是后++,在执行该语句时是不计算的,所以a[0]++是个表达式而不是值,显然用&取一个表达式的地址是非法操作!而如果是&++a[0]则是正确的,因为前++在执行&时已经计算过了:就是先给a[0]+1,然后再取a[0]的地址。&a[0]+1是正确语句,因为&的优先级比+高,所以是先取a[0]的地址再给这个地址+一个元素所占字节数——就是说&a[0]+1是a[1]的地址。