public class HelloWorld{
public static void main(String[] args)
{
int a=24; int b=a++;
System.out.println("a:"+a);
System.out.println("b:"+b);
} }
输出结果: a:25 b:24
为什么啊?
a=24 b的值是取a值后自增1 不是应该:a:24 b:25 才对吗?
b=a++表示把a的值赋给b,然后a=a+1,自增是增靠近"++"这个运算符最近的变量的。
如果想要达到“b的值是取a值后自增1”好像只能分开敲b=a;b++;
测试了一下用java好像无法判别(b=a)++;会提示错误为意外的类型;不过用C可以正确识别。
另外,在java中,a++ 和 ++a的相同点都是给a+1,不同点是a++是先参加程序的运行再+1,而++a则是先+1再参加程序的运行。
举个例子来说: a=2; b = a++; 运行后: b = 2,a =3 ;
a=2; b = ++a; 运行后: b = 3,a =3;
a++就是先把a的值赋值给b;如果是b=++a的话,就是先给a加1,然后赋值给b,结果就是a=25,b=25,
b=a++ ,是把a赋值给b,然后a自增
b=a++,意思是b=a,然后a++。