C 中的双重否定:是否保证返回 0/1?

2024-05-10

Is !!(x)标准保证返回0/1?

请注意,我是not询问 C++,其中定义了 bool 类型。


是的,在 C99 中,请参阅§6.5.3.3/4:

逻辑非运算符的结果!是0如果其操作数的值比较 不等于0,1如果其操作数的值比较等于 0。结果具有类型int。 表达式 !E 等价于 (0==E)。

So !x and !!y只能产生 0 或 1,如ints.

对于 C99 中的其他运算符,另请参阅是 >、 https://stackoverflow.com/questions/7687403/is-the-true-result-of-or-defined

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C 中的双重否定:是否保证返回 0/1? 的相关文章

随机推荐