• 学习记录 彻底搞清 C#中a++与++a的区别


    首先 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

  • 相关阅读:
    关于汉密尔顿回路
    hdu 3018 Ant Trip
    hdu 1116 Play on Words
    关于欧拉回路、欧拉通路的一些定理及推论
    hdu 1531 King
    hdu 3440 House Man
    hdu 3666 THE MATRIX PROBLEM
    hdu 1384 Intervals
    关于差分约束系统
    hdu 1878 欧拉回路
  • 原文地址:https://www.cnblogs.com/zhoudi/p/5310403.html
Copyright © 2020-2023  润新知