首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当int arr =1 && arr;而不是int arr =0 && arr;时,代码崩溃

当int arr =1 && arr;而不是int arr =0 && arr;时,代码崩溃
EN

Stack Overflow用户
提问于 2010-04-11 00:04:05
回答 2查看 196关注 0票数 3

我想知道为什么下面的代码会崩溃。

代码语言:javascript
复制
int main( ) 
{  
    int arr = 1 && arr;
    return 0; 
}

但不是使用下面的代码

代码语言:javascript
复制
int main( ) 
{  
    int arr = 0 && arr;
    return 0; 
}

提前感谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-04-11 00:07:43

0 && arr

由于0,上面的表达式是假的,因此不像1 && arr那样检查arr,在1 && arr中,必须检查arr才能计算expression的值。

您应该尝试:

代码语言:javascript
复制
int main(){
  int a = 0 && printf("a"); //printf returns number of characters printed, 1
  int b = 1 && printf("b");
  return 0;
} 
票数 12
EN

Stack Overflow用户

发布于 2010-04-11 00:08:42

由于布尔表达式的短路计算。在第一个示例中,运算符&&的左侧计算结果为true,因此右侧的计算结果为true。在第二种情况下,左边为false,因此不会计算右边的值。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2613980

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档