C语言中,a!=0与a=1有什么区别?

Python016

C语言中,a!=0与a=1有什么区别?,第1张

没有实质性区别,但是为了防止程序员出现a=0的错误,把0写在前面,若是出现0=a会报错。

注意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]的地址。