gpt4 book ai didi

c++ - C中的&&运算符是什么

转载 作者:IT老高 更新时间:2023-10-28 11:27:48 24 4
gpt4 key购买 nike

#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

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

warning: the address of ‘i’ will always evaluate as ‘true’ [-Waddress]

c 在上述程序中是如何被评估的?

最佳答案

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

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

如果您打开警告,您会得到如下信息:

warning: the address of ‘i’ will always evaluate as ‘true’

关于c++ - C中的&&运算符是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13946938/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com