{int a=10,b=20,c=30,d; d=++a=20||c++; printf("%d,%d,%d,%d,\n",a,b,c,d);} 结果是11,19,30,1为什么b为19,c为30?是因为后面c++没有参加运算吗?求详解

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 19:38:09
{int a=10,b=20,c=30,d; d=++a=20||c++; printf(

{int a=10,b=20,c=30,d; d=++a=20||c++; printf("%d,%d,%d,%d,\n",a,b,c,d);} 结果是11,19,30,1为什么b为19,c为30?是因为后面c++没有参加运算吗?求详解
{int a=10,b=20,c=30,d; d=++a=20||c++; printf("%d,%d,%d,%d,\n",a,b,c,d);} 结果是11,19,30,1
为什么b为19,c为30?是因为后面c++没有参加运算吗?
求详解

{int a=10,b=20,c=30,d; d=++a=20||c++; printf("%d,%d,%d,%d,\n",a,b,c,d);} 结果是11,19,30,1为什么b为19,c为30?是因为后面c++没有参加运算吗?求详解
重点在 d=++a=20||c++; 这句,里边是||运算符,从开始往后计算,碰到一个为真的表达式,后边的表达式就不计算了.
++a = 20 这个是先判断 b >=20的,判断了以后 再进行b-- 相当于 两句 b >=20;b--; 这个为真
所以后边c++没有运算.