繁体   English   中英

为什么这个 if 语句是真的? 不同的地址

[英]Why is this if-statement true? Different arry address

我不明白为什么这个 if 语句是正确的,有人可以向我解释一下吗?

int a[8][8] = {0};

if(&a[7][0] == &a[0][0] || &a[5][1])
    printf("true\n");

这个有条件的

if (&a[7][0] == &a[0][0] || &a[5][1])

方法

if ( (&a[7][0] == &a[0][0]) || (&a[5][1] != 0) )

并且在所有情况下,您永远不会发现a[5][1]的地址为零。 所以你的条件总是得到满足。

您可能已经想到了这种情况:

if (&a[7][0] == &a[0][0] || &a[7][0] == &a[5][1])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM