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

if (假 && 真) 的有关问题.

2013-04-21 
if (假 && 真) 的问题..本帖最后由 weiwuyuan 于 2013-04-20 11:25:54 编辑bool bl trueint x 0if (

if (假 && 真) 的问题..
本帖最后由 weiwuyuan 于 2013-04-20 11:25:54 编辑 bool bl = true;
int x = 0;
if (!bl && 3/x)
{
    int a = 0;
}

什么问题大家看出来了吧?
我听说如果左边表达式不成立,右边的表达式将不被执行,是这样的么?
这属于语法范畴么? 我想知道这种语法是否足够标准? 因为,我可能会利用这种用法来实现很多功能.
[解决办法]
是的 语法上有要求 
lexp && rexp
lexp的值为0的
那么 rexp 不求值

同理
lexp 
[解决办法]
 rexp
lexp的值为非0
rexp不求值

并且保证了 
 && 
[解决办法]

这样的表达式是从左向右求值
[解决办法]
短路求值,应该没什么问题,比如
char *p = 0;
if (p && strcpy(p ,xxx)) 可以将必须成立的放在左边,有依赖的放在右边

热点排行