#include
main()
{
int x=1,y=2,z=3;
x+=y+++--z;
printf("%d %d %d\n",x,y,z);
}
想法:
x+=y+++--z;
--z會先算,因為--在z前面,此時z=3-1=2;左值(l-value)與右值(r-value)都是2;
y++這邊是很傳統的左值(l-value)與右值(r-value)問題,
右值是2,左值是3,
所x+=2(右值)+2(右值), x是1+4=5左值也是5;
所以答案是5,3(左值),2(左值)
答案x=5,y=3,z=2
No comments:
Post a Comment