女孩袜子让男孩闻:C语言 运算符的优先级?

来源:百度文库 编辑:中科新闻网 时间:2024/04/28 16:50:48
mian()
{
int k=2,i=2,m;
m=(k+=i*k);
printf("%d,%d",m,i);
}

()优先级最高
*优先级其次
+优先级再其次
+=和=优先级最低

所以,先计算i*k,然后是k+=...,然后是m=

相当于 m=(k+=(i*k))=6,i等于2

m=(k+=i*k);
先计算i*k=4,再k+=4,再m=k=6
printf("%d,%d",m,i);
的结果是6,2

优先级不需要记
写代码时不要写成高技巧的,这样得不偿失,可读性不好
如上面的代码可以写成这样:
void main()
{
int k = 2, i = 2, m;
k += i * k;
m = k;
printf("%d,%d", m, i);
}