c语言 下列运行结果 需要详细解释 在线等
1个回答
2015-02-25
展开全部
先说第一个表达式
x<y?x++:y++
此时 x = 3, y = 4 , x < y ? 成立吗 如果成立输出 x++ 的结果,如果不成立输出 y++ 的结果
很明显成立 所以 输出 x++的结果,x++ 是先输出结果 在进行 ++ 所以 第一个表达式 输出 3;
第二个表达式
z+=x>y?x++:y++
此时 x 由于上个表达式的++ 计算 已经 =4 ,y 由于并没有执行 所以还是 = 4 ,z 还是初始值 = 4
z+=x>y?x++:y++ 等于 z = z + x > y ? x++ : y++
按照优先级关系 首先计算 x >y ? 是否成立 通过上边推算 x = 4 ,y =4 明显不成立 所以返回 y++
此时在计算前边未计算完的 表达式 z = z + y++; y++ 先是输出结果 是4 , z = 4 所以 z = 4 +4
所以输出 结果是8
x<y?x++:y++
此时 x = 3, y = 4 , x < y ? 成立吗 如果成立输出 x++ 的结果,如果不成立输出 y++ 的结果
很明显成立 所以 输出 x++的结果,x++ 是先输出结果 在进行 ++ 所以 第一个表达式 输出 3;
第二个表达式
z+=x>y?x++:y++
此时 x 由于上个表达式的++ 计算 已经 =4 ,y 由于并没有执行 所以还是 = 4 ,z 还是初始值 = 4
z+=x>y?x++:y++ 等于 z = z + x > y ? x++ : y++
按照优先级关系 首先计算 x >y ? 是否成立 通过上边推算 x = 4 ,y =4 明显不成立 所以返回 y++
此时在计算前边未计算完的 表达式 z = z + y++; y++ 先是输出结果 是4 , z = 4 所以 z = 4 +4
所以输出 结果是8
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询