任何人都可以解释这个有效的C++程序如何返回null?

Jør*_*n R 1 c++

我偶然发现了这个:

int main() {
return!!!~!!!!!~!!!1??!??!1?

"^_^"  <:3

]:     "^.-"

<:      0.0 

<3  :>  ;}
Run Code Online (Sandbox Code Playgroud)

一个可爱的表情符号集合,据称返回null.C-fu比我更好的人解释它是如何工作的吗?

Ste*_*sop 12

<:手段[,:>手段](它们是有向图).

??!意味着|(这是一个三角形),所以??!??!是合乎逻辑的||

?第一行的最后一行是条件运算符.

余数从两个表情字符串之一中选择一个字符.它会从第一个选择,因为不管有多少!~有在混乱的开始,anything || 1是真实的.

所以它实际上选择了"^_^"[3],这是字符串末尾的nul终止符,即0.

基本上代码读取return ((some mess) || 1) ? "^_^"[3] : "^.-"[1];,因为0.0 < 3是真的.

[编辑:我刚刚意识到(并在下面评论过),有可能编写一个~(expression equal to 0)具有未定义行为的符合实现.因此,要知道此代码是否严格符合,您必须检查这两个代码是否都~应用于零.实际上!!!10,所以代码并不严格符合.但是,它可以用于任何你可以命名的实现,因为大概所有内容都使用2的补码.