两个!是为了把 非0值 转换成1,而0值还是0。

因为C语言中,所有 非0值 都表示真。所以!非0值 = 0,而!0 = 1。

所以!!非0值 = 1,而!!0 = 0。

示例如下:

#include

using namespace std;

int main(int argc, char* argv[])

{

int a = 3;

int b = 4;

cout << "false " << false << " true " << true << endl;

cout << "a " << a << endl;

cout << "b " << b << endl;

cout << endl;

cout << "(a

cout << "!(a

cout << "!!(a

cout << endl;

cout << "(a>b) " << (a > b) << endl;

cout << "!(a>b) " << !(a > b) << endl;

cout << "!!(a>b) " << !!(a > b) << endl;

cout << endl;

cout << "!3 " << !3 << endl;

cout << "!!3 " << !!3 << endl;

cout << endl;

cout << "!0 " << !0 << endl;

cout << "!!0 " << !!0 << endl;

cout << endl;

cout << "!(-3) " << !(-3) << endl;

cout << "!!(-3) " << !!(-3) << endl;

cout << endl;

return 0;

}

输出结果:

false 0 true 1

a 3

b 4

(a

!(a

!!(a

(a>b) 0

!(a>b) 1

!!(a>b) 0

!3 0

!!3 1

!0 1

!!0 0

!(-3) 0

!!(-3) 1

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐