int main() { int a, b, c, d, m, n; a = b = c = d = m = n = 0; if ((m = a == b) || (n = c == d)) { a = b = c = d = 3; }
printf("%d,%d“,m,n); return 0; }
先看以上代码,本题 的考点为 if ((m = a == b) || (n = c == d)) 。在||逻辑运算中如果前面的(m=a==b)=1了,其后面的(n=c==d)不会再进行运算。这也是著名的C语言中的(短路原则)!
2、对于+=、-=、*=、/=、%=
首先看几个例子
score+=20; 等价于 socre=score+20;
dimes-=2; 等价于 dimes=dimes-2;
bunnies*=2; 等价于bunnies=bunnies*2;
time/=2.73; 等价于time=time/2;
reduce%=3;等价于reduce=reduce%3;
来看一道题目
int main() { int a = 5; a -= a * a; printf("%d", a);//a - (a * a); return 0; }
这个地方的a-=a*a;我们可以直接堪称a=a-(a*a)后面的a*a看成一个整体括起来再做答案为-20;
3
int main() { float y = 0; float x = 1.0; y = x + 5 / 2; printf("%.3f", y); return 0; }
5/2按照C语言中的规则5/2=2,由于x为1.0所以y为3.0,但是printf需要输出三位小数所以答案为3.000;
原文:https://www.cnblogs.com/Alei777/p/12181092.html