注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

信息 灵感 创新

I? =Information,Inspiration,Innovation

 
 
 

日志

 
 
关于我

we are 5. Mathematics, Computation, Programming, Engineering, and Making fun of life.

网易考拉推荐

C#中的短路计算和非短路计算  

2011-04-05 20:52:53|  分类: C# & .NET |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

C和C++中关于逻辑运算的短路问题很清楚明了,C#中也有类似的现象,这里就不再赘述了,要说说的是非短路计算。

C#中的两组逻辑运算符&&和||也会造成短路的,不过有些人不知道的是,还有非短路逻辑运算符&和|(没错,就是位运算中的按位与和按位或),这两种会将布尔运算计算完成,即使后面的值对结果没有任何影响。如下:

C中的短路计算和非短路计算 - Castor - 趁年轻,多折腾~~

  

VS2010能够自动检测到无法访问的表达式代码,并给出提示,由于这既不是语法错误(编译时错误),也不是逻辑错误(运行时错误),IDE仅仅给出提示。

运行该段代码如下:

C中的短路计算和非短路计算 - Castor - 趁年轻,多折腾~~

 可见后面一个并没有被短路。对于||和|也有类似的效果,测试2008及其以后版本中可行,不知道其他版本的VS是否支持。

  评论这张
 
阅读(1284)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016