自加,自减及运算符优先级问题:
int _tmain(int argc, _TCHAR* argv[])
{
int a,b,c;
a=b=c=1;
a=-b---c; //a=-2
cout<<a<<endl; //b=0,c=1
cout<<b<<endl;
cout<<c<<endl;
return 0;
}
——的优先级高于-,所以a=-(b--)-c故,a=-1-1=-2,b=0,c=1
int _tmain(int argc, _TCHAR* argv[])
{
int a,b,c;
a=b=c=1;
a=++b+c++;
cout<<a<<endl;//3
cout<<b<<endl;//2
cout<<c<<endl;//2
return 0;
}
等价于a=(++b)+(c++),故,a=3,b=2,c=2
int _tmain(int argc, _TCHAR* argv[])
{
int a,b,c;
a=b=c=1;
a=(--b)+++c;
cout<<a<<endl;//1
cout<<b<<endl;//1
cout<<c<<endl;//1
return 0;
}
等价于a=((--b)++)+c; a="b"=c=1;
int _tmain(int argc, _TCHAR* argv[])
{
int a,b,c;
a=4;
a+=a-=a*a;
cout<<a<<endl;
return 0;
}
计算过程:a*a=4*4=16;
a-=16 等价于a=a-16 a="4-16"=-12;
a+=(-12)等价于a=a+(-12)=-24
int _tmain(int argc, _TCHAR* argv[])
{
int a,b,c;
a=b=c=1;
a=(b=1,b++,b++,b++);
c=(b=1,b++,b++,++b);
cout<<a<<endl; //3
cout<<c<<endl; //4
return 0;
}
/////////////////////
a=3,c=4;
文章评论(0条评论)
登录后参与讨论