C#中a++与++a的区别

时间:2021-04-16

  首先 a++和++a 的定义:看个例子

  A: a=5; b=++a; // 相当于a=a+1;b=a; 结果是a=6,b=6

  B: a=5; b=a++; // 相当于b=a;a=a+1; 结果是a=6,b=5

  所以:

  (1) 如果用前缀运算符对一个变量增1(减1),则在将该变量增1(减1)后,用新值在表达式中进行其他的运算。

  (2) 如果用后缀运算符对一个变量增1(减1),则用该变量的原值在表达式中进行其他的运算后,再将该变量增1(减1)后。

  举个列子:求a的最终值

  int a=3;

  a+=a+=a++*a--;

  计算过程如下:

  先算a++*a--

  由于a=3

  a++等于3 //这里后缀++中的第二步自加运算还没有进行

  a--等于3 //这里后缀--中的第二步自减运算还没有进行

  所以 ++*a-- 等于9

  a+=a++*a-- 等于a+=9等于a=a+9=3+9=12

  在算a+=a 等于a=a+12=12+12=24

  然后在进行再后缀++中的第二步自加运算和后缀--中的第二步自减运算

  即进行 a=a+1;此时a=25;再进行a=a-1;此时a=24 所以最终a=24

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章