小编典典

C中的&&&操作是什么

all

#include <stdio.h>

volatile int i;

int main()
{
    int c;

    for (i = 0; i < 3; i++) 
    {
         c = i &&& i;
         printf("%d\n", c);
    }

    return 0;
}

使用编译的上述程序的输出gcc

0
1
1

使用-Wallor-Waddress选项,gcc发出警告:

warning: the address of 鈥榠鈥� will always evaluate as 鈥榯rue鈥� [-Waddress]

c在上述计划中如何评估?


阅读 61

收藏
2022-07-09

共1个答案

小编典典

它是c = i && (&i);,第二部分是多余的,因为&i永远不会评估为false

对于用户定义的类型,您实际上可以重载 unary operator &,它可能会有所不同,但这仍然是一个 非常糟糕的主意

如果你 打开警告 ,你会得到类似的东西:

警告:“榠”的地址将始终评估为“榯rue”

2022-07-09