首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于C++中 或操作的执行顺序,该如何处理

2012-09-11 
关于C++中 或操作的执行顺序例如:p是一个类指针,fun是它的函数然后if(!p || p-fun()){。。。}这样做似乎不安

关于C++中 或操作的执行顺序
例如:
p是一个类指针,fun是它的函数
然后
if(!p || p->fun())
{
。。。
}

这样做似乎不安全,我以前就碰到过这样的问题,p->fun先执行,导致因p为空而崩溃,但什么情况会出现||先执行右边的条件呢

[解决办法]
应该没问题,别的地方引起崩溃的吧。其他代码呢
[解决办法]

探讨
例如:
p是一个类指针,fun是它的函数
然后
if(!p || p->fun())
{
。。。
}

这样做似乎不安全,我以前就碰到过这样的问题,p->fun先执行,导致因p为空而崩溃,但什么情况会出现||先执行右边的条件呢

[解决办法]
p->fun()先执行? 这绝对不是你||的原因,应该是程序别的地方出错导致||p->fun();先执行
[解决办法]
“||”的意义就是“短路或”,明确规定要从左至右执行的,这也是和“|”操作符明显区别的地方。
肯定是你的其他代码导致崩溃了,楼主在检查一下其他代码!

热点排行