int a,b,c; a=b=c=1; ++a||++b&&++c a,b的值为2,1
来源:百度知道 编辑:UC知道 时间:2024/06/01 16:59:27
main()
{ int a,b,c;
a=b=c=1;
printf( ++a||++b&&++c);
printf("%d,%d",a,b);
}
为什么a=2,b=1?
与的运算符优先级高于或。不是应该先做++b么?所以++c不做才对啊。
{ int a,b,c;
a=b=c=1;
printf( ++a||++b&&++c);
printf("%d,%d",a,b);
}
为什么a=2,b=1?
与的运算符优先级高于或。不是应该先做++b么?所以++c不做才对啊。
printf( ++a||++b&&++c);
是什么意思?
应该只有里面的部分吧!
请注意这里有一个短路或||
意思是当有一个条件成立时,不进行下一个条件
++a结果为2,成立
于是不做++b&&++c,故b和c都是1
&& 优先级高于 ||
编译时
++a||++b&&++c -> ++a||(++b && ++c)
运行时,|| 短路,(++b && ++c)不会执行
已知int a=1;int b;b=(++a)+(++a)+(++a);为什么b=10?
int a=5,b; b=++a*--a;
int a=b;与int a,b;a=b;的区别
|a-b-c|+|b+c-a|+|a+b+c|=?
void a(int a,int b=0)的含义?
初一数学题..(a+b)(a-b)+c(a+b)为什么=(a+b)(a-b+c)
int a,b=5; a=(++b)+(++b)+(++b)+(++b);
设a = 5,b = 10,则执行 c = Int((b - a) * Rnd + a) + 1,结果为多少
unsigned int a=2;int b = -3;
执行语句int a,b,c; a=(b=c=3, c++, b+=c);则a的值是?请说明理由