当前位置: 技术问答>java相关
帮忙解释一下这一句:a[b] = b = 0;
来源: 互联网 发布时间:2015-06-18
本文导语: int[] a = {4, 4}; int b = 1; a[b] = b = 0; System.out.println(a[0]); System.out.println(a[1]); System.out.println(b); 为什么会是这样呢? | 楼上的大多错了 a[b]=b=0;这句拆开就是 a[b]=0; b=0; 所以 int b =1; a[b]=b=0;...
int[] a = {4, 4};
int b = 1;
a[b] = b = 0;
System.out.println(a[0]);
System.out.println(a[1]);
System.out.println(b);
为什么会是这样呢?
int b = 1;
a[b] = b = 0;
System.out.println(a[0]);
System.out.println(a[1]);
System.out.println(b);
为什么会是这样呢?
|
楼上的大多错了
a[b]=b=0;这句拆开就是
a[b]=0;
b=0;
所以
int b =1;
a[b]=b=0;
的结果就是
a[1]=0;
b=0;
而a[0]值不变,还是4
所以输出结果是
4
0
0
a[b]=b=0;这句拆开就是
a[b]=0;
b=0;
所以
int b =1;
a[b]=b=0;
的结果就是
a[1]=0;
b=0;
而a[0]值不变,还是4
所以输出结果是
4
0
0
|
基本上书中在讲赋值的时候,都会有这样的语句:
int i=j=0;
它就是等价于
int i=0;
int j=0;
所以本问题里面,
a[b]=b=0;就是等价于
a[b]=0;
b=0;
int i=j=0;
它就是等价于
int i=0;
int j=0;
所以本问题里面,
a[b]=b=0;就是等价于
a[b]=0;
b=0;
|
绿色咖啡是对的
这是一个简单的组合赋值语句
i=j=h结构的
这是一个简单的组合赋值语句
i=j=h结构的
|
首先将b=0,然后a[0]=0;
结果:
0
4
0
应该是这样!
结果:
0
4
0
应该是这样!
|
先取a[b]也就是a[1]的地址,压栈
然后执行b=0,将结果送到a[1]
所以,结果是
b=0;
a[0]=4;
a[1]=0;
然后执行b=0,将结果送到a[1]
所以,结果是
b=0;
a[0]=4;
a[1]=0;
|
楼上的,你理解错了。
=号是右结合,所以
a[b] = b = 0;
b = 0;
a[b] = b;
所以:
tdchjy(蓝天) 说的对的。
=号是右结合,所以
a[b] = b = 0;
b = 0;
a[b] = b;
所以:
tdchjy(蓝天) 说的对的。
|
运行一下试试不就知道了
4
0
0
4
0
0