JAVA与C运算赋值的不同

main(){
int a = 10;
printf("%d",a+=a-=a*a);
}

结果为:-180

JAVA的版本:

public static void main(String[] args) {
int a = 10;
System.out.printf("%d",a+=a-=a*a);
}

结果为:-80

所以运算的时候C的变量在运算式中是跟随变量值变而变化,而JAVA中a放进运算式后就等于固定赋值了,除非遇到“=”进行重新赋值。否则都是保持原来的值。

根据这个实验了一下这个:

public static void main(String[] args) {
int a = 10;
int b = 20;
a = (a+b) - (b=a);
System.out.printf("%d %d",a,b);
结果a = 20 , b = 10
}

public static void main(String[] args) {
Integer a = new Integer(10);
Integer b = new Integer(20);
a = (a+b) - (b=a);
System.out.printf("%d %d",a,b);
结果a = 20 , b = 10
}

不单基本数据类型适用,基本数据相对的引用数据类型也适用。



posted on 2011-10-15 19:19  Topless  阅读(347)  评论(0编辑  收藏  举报

导航