int x,y,z;
x=y=1;
z= x++,y++,++y;
问执行之后x y z分别为多少?
要解决这个问题 先解决一个加加减减的问题
int a = b++ ; //这个后置加加 会先把b赋值给a,然后再b加一
int a= ++b; //这个前置加加 会先把b加一,然后b赋值给a
要解决这个问题 再解决一个逗号运算符的问题
int c= a,b; //相当于 int c =a; int b;
int c=(a,b); //相当于 int c = a, c=b; 较聪明的编译器会直接,int c = b;
知道这两个规则之后,再看上面的问题
相当于 把 x赋值给z后 x加一,然后 y++ 与 ++y 都不赋值给z了。
故执行完后 z= 1 x=2 y=3;