a++ --a 怎么计算呢?
a++表示先取之前的a值,再做加法运算;++a表示先做加法运算,再取现有a值。因此,若a=1,b=a++,此时b=1,a=2;如果求b=++a,此时b=2,a=2。--a和a--同理。
a++ 表示先进行赋值,后面再加一。--a表示先减一,然后再赋值给a。
1,a++和--b你可以这样子理解,设本来a=b=0;经过上面计算后,a的值为1,b的值为-1;但是c=a++等于0,这里c 取得是运算前的值,--b代表的是运算后的值,猜想b=?运算前的初值是0,经过减法运算后的值则为-1;即d=--b=-1
运算符在前面,先运算再取值,如 ++a; 如果a原来等于0,现在a等于1。取值也会是1;
运算符在后面,先取值再运算,如a++; 如果a原来是0,运算完a等于1,为下一次取值做准备,但本次取值因为是先取值,所以取值为0;
编译器按照最长匹配原则从左到右来解析代码,所以在语法上这句代码被认为是 ((a++)-- a)。
不过 ++ -- 这样的自增减运算符的操作数必须是左值(lvalue)。 a是左值,所以 a++ 是合法的,然而 (a++) 这个表达式的值是右值(rvalue),不允许再作为 -- 的操作数了,所以本句在语义上出错了。最终编译器会报错。
另外,不要在一个语句中对同一个变量多次取值、赋值,这样的结果很可能是未定义的。
就是+1和-1
左侧内容中有讲解啊