Modern Clang Chapter-04
/ 两个整数相除, 结果为被截断的整数;
% 要求必须为两个整数的运算;
c 语言中, = 是运算符, 右结合. v=e 的结果为e, 副作用是把e的值赋值给v.
i=j=k=0 即 i=(j=(k=0)); i += j += k 即 i += (j += k), 不推荐.
i++ 结果是 i, 副作用是 i 自增;
++i 结果是 i+1, 副作用是 i 自增;
k = ++i + j++ 即 i=i+1; k=i+j; j=j+1;
k = i++ + j++ 即 k=i+j; i=i+1; j=j+1;
++/-- 优先级 高于 一元的+/- ;
clang 没有定义子表达式的求值顺序, 所以不要在子表达式中使用赋值运算符.
a[i++] = a[i++] + 100 i是加一次还是两次是未定义的.
i *= j + 1 => i *= (j + 1)