基本上,这是未定义的结果吗?
int x;
int y = 1 || x;
Run Code Online (Sandbox Code Playgroud)
这里有两个"常识"论点:
x,价值都y应该是1.x无论如何都从未进行过评估.但反驳的是,我们有一个表达涉及一个未初始化的变量,所以所有的赌注都是关闭的(理论上).
更一般地说,如果未初始化变量的值不可能影响表达式的结果,那么它是否"安全"?例如:
int x;
int y = x - x;
Run Code Online (Sandbox Code Playgroud)
通常的免责声明:当然,我不是在提倡编写这样的代码.