原创 VC2005(2)

2010-2-23 14:56 1974 3 3 分类: 软件与OS

自加,自减及运算符优先级问题:


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;


 


 


 


 


 


 

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
3
关闭 站长推荐上一条 /2 下一条