65,196
社区成员




[root@localhost ~]# cat 1123.cpp && ./1123
#include <iostream>
using namespace std;
int main()
{
int val=0;
bool b=(val+=1&&val);
cout<<b<<endl;
cout<<val<<endl;
return 0;
}
0
0
ival++ && ival // 为什么这样写就可能有问题了呢?&&操作符是有求值顺序的阿(短路)
// 最多与上面的不同就是如果ival为0,那么ival++牙根就没被计算仅此这点不同
// 但也不能说是错误阿目的是求ival与ival+1的值是否同时为非0
#include <iostream>
using namespace std;
int main()
{
int val=0;
bool b=(val++&&val);
cout<<b<<endl;
cout<<val<<endl;
return 0;
}