int arr = 1 && arr时代码崩溃; 但不是int arr = 0 && arr;

mah*_*esh 3 c

我想知道为什么下面的代码崩溃了.

int main( ) 
{  
    int arr = 1 && arr;
    return 0; 
}
Run Code Online (Sandbox Code Playgroud)

但不是以下代码

int main( ) 
{  
    int arr = 0 && arr;
    return 0; 
}
Run Code Online (Sandbox Code Playgroud)

提前致谢

N 1*_*1.1 12

0 && arr
上述表达式是,因为0,所以arr不检查不像1 && arr其中arr必须检查以评估表达式的值.


你应该试试:

int main(){
  int a = 0 && printf("a"); //printf returns number of characters printed, 1
  int b = 1 && printf("b");
  return 0;
} 
Run Code Online (Sandbox Code Playgroud)