刚看到一帖子,说是短路原则,自己写了段代码试了下。果然很好玩!
int main()
{
int a,b;
a = 2;
b = 3;
!a&&(b++);
cout<<b;
/*
a&&(b++);
cout<<b;
*/
return 0;
}
其中,未被标的,输出为3。被标的代码,输出为4。原因是&&运算符从左往右算(在VC6.0本地编译器下),如果判断&&的左边已经为0,刚不执行右边代码。||也同理。
很有趣,很好玩。
刚看到一帖子,说是短路原则,自己写了段代码试了下。果然很好玩!
int main()
{
int a,b;
a = 2;
b = 3;
!a&&(b++);
cout<<b;
/*
a&&(b++);
cout<<b;
*/
return 0;
}
其中,未被标的,输出为3。被标的代码,输出为4。原因是&&运算符从左往右算(在VC6.0本地编译器下),如果判断&&的左边已经为0,刚不执行右边代码。||也同理。
很有趣,很好玩。