本文介绍了是(--i ==我++)不确定的行为?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这个问题是涉及到我以前的。我得到的答案是的这是一个未定义的行为。



请谁能解释:




  • 什么是未定义的行为?

  • 我的代码,我怎么能知道有一个未定义的行为?



示例代码:

  INT I = 5; 
如果(--i ==我++)
Console.WriteLine(平等且i =+ I);
,否则
Console.WriteLine(不等于我=+ I);

//输出:平等,I = 6


解决方案

这在C未定义,但在C#中明确:



从C#(ECMA-334)规范运算符优先级和结合一节(§ 14.2.1):



So --i is evaluated first, changing i to 4 and evaluating to 4. Then i++ is evaluating, changing i to 5, but evaluating to 4.

这篇关于是(--i ==我++)不确定的行为?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

06-11 19:08