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

标签 c

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

int main( ) 
{  
    int arr = 1 && arr;
    return 0; 
}

但不是下面的代码

int main( ) 
{  
    int arr = 0 && arr;
    return 0; 
}

提前致谢

最佳答案

0 && arr
由于 0,上面的表达式是 false,所以 arr 不像 1 && arr where 必须检查 arr 以计算表达式的值。


你应该尝试:

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

关于当 int arr = 1 && arr; 时代码崩溃但不是 int arr = 0 && arr;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2613980/

相关文章:

使用不同大小的字符串文字初始化给定大小的静态字符数组会导致未定义的行为吗?

c++ - 如何将c/c++回调函数转换为delphi

c# - C# 中的 C 方法 Fread() 等效项

c - Obj-C 有@available。 swift 有#available。我可以在 C/C++ 中使用什么?

c - 如何定义排除某组词的文法?

c - K&R 练习 1-16 clang - getline 的冲突类型

python - 如何创建包含 ppm 图像的二进制光栅数据的 C 字符串

c - ‘main’ 通常是一个非静态函数 ERROR

c - if(!n/10)return; 之间有什么区别吗?如果(n/10==0)返回;?

c - 如何在 struct in_addr 中存储人类可读的 IP?