祥求代码意思

来源:百度知道 编辑:UC知道 时间:2024/07/08 02:20:25
在如下的一段C++代码中:
#include <stdio.h>
void main()
{
int a, b, c, d; c=(a=1)?(b=1,b+=a+5):(a =7,b=3);
d=b*'a'/4;
printf("%d%d%d%d\n", a, b, c, d);
}

b+=a+5这一句如何理解?详细!

这种都是从右向左运算的。因为最右边的肯定是一个明确的值
所以b+=a+5.先把a+5算出来。
然后才是b+=(a+5)
即b=b+(a+5)

b=b+a+5

+的优先级比+=高,所以是b+=(a+5).而
a=1,a+5=6,所以b+=6,之前已有b=1,所以最后b=7

b=b+a+5

D=A?B:C
这个语句的意思是
A>=B则 D=B
不然
D=C

b=b+(a+5)