题1:
int number = 10;
int result = 10 + number++;
相当于:
int number = 10;
int b = number++;
//如果是后++,则首先拿原值参与运算,运算完成后,自身再加一
//所以将number=10参与赋值运算,把10赋给变量b,b=10
//然后number自身再加一,number=10+1=11
int result = 10 + b;//result=10+10=20
Console.WriteLine(result);//20
Console.WriteLine(number);//11
题2:
int a = 5;
int b =a++ + (++a) * 2 + ++a;
看这个表达式的运算结果:
具体步骤我们来分析下:
int a=1;
int b=++a;
相当于:
int a =1;
a=a+1;
int b=a;
所以 前加是先自增 再赋值。
int a=1;
int b=a++;
相当于:
int a=1;
int b=a;
a=a+1;
所以后加就是先赋值,再自增
为什么呢?
=是赋值表达式,优先级高于自增表达式++,后加的时候,先赋值,再自增