看一些代码时,有时候看到!!(cond)的用法,这个用法的含义是什么呢?
答:我们都知道!(cond)的含义,即取反的含义,若cond为非0,则值为0,;若cond为0,则值为1;
那么以此类推,不难得出!!的含义,即若cond为非0,则值为1,;若cond为0,则值为0。
这里有一个隐藏含义,即可以通过!!修饰后,得到的结果肯定为0或者1,可以达到修改数值的目的,例如:
int k = 12;
int m = -1;
int n = 0;
cout<<"!!k = "<<!!k << " !!m = "<< !!m << " !!n = "<<!!n;
输出结果为:
!!k = 1 !!m = 1 !!n = 0
通过上面例子可以看到原本k和m的数值分别是12和-1,但是经过!!修饰后都变成了1。
注意事项:不建议!!修饰浮点数。