1、设x,y,z ,t 均为int 型变量,执行以下语句后,t的值为:
int main()
{
int x,y,z ;
x=y=z=1;
int t=++x||++y&&++z;
cout<<x<<y<<z<<t<<endl;
}
在VS运行后,结果如图所示:
如果把 int t=++x||++y&&++z; 替换成:
int t=++x&&++y||++z; 运行结果为:
所以&&和||同时出现在表达式里,是按照自左向右算的。
int t=++x|| (++y&&++z); 算出++x,后面的就不用算了,或运算符1真全真
int t=++x&&(++y||++z); 算出++x,如果为true,接着算++y,为true,就不用算++z,为假,就接着算++z;
如果为false,后面的也就不用算了。