+的优先级要大于/=,所以,假如a=2;那么
a/=a+a ==>a/=(a+a) ==>a=a/(a+a) ==>a=2/(2+2)=0 ==>a=2/4 ==> a=0(实际a=0.5,因为做的是整数除法)
菜鸟看法,仅供参考。
root@~ #cat 2.c
#include <stdio.h>
int main (void) {
float a=2;
a/=a+a;
printf ("%.2f\n",a);
int b=2;
b/=b+b;
printf ("%i\n",b);
return 0;
}
root@~ #gcc 2.c -o 2
root@~ #./2
0.50
0
root@~ #