int a = 5;
int b = a;
b = b + 10;
输出a等于多少??
我知道他等于5,但是我自己用物理存储解释出了一个15???晕了 求大神帮忙出坑
程序一开始 a = 0 b = 0
执行完int a = 5;
a = 5 b = 0
执行完int b = a;
a = 5 b = 5
执行完b = b + 10;
a = 5 b = 15
也就是说,直接看等号后面的部分,用变量当前的值代入一次性算表达式的值,然后再修改这个变量。
比如 a = a + 1
在数学上说a永远不等于a + 1
但是这里的意思是,用a现在的值(假设a=1)代入,得到1+1,算出来2,然后让a的新值为2。
可见a = 1; a = a + 1;中,a = a + 1;的意思就是让a增加1。
a的值是不变的,在内存中只存在一份a自始至终a的值没有改变
我就想知道你怎么解释的物理储存,可以的话请提供
假设int a=5后, a的地址为0x00000001
那么int b=a后,b的地址是另一个,可能是0x00000010,完全是两个不同的物理地址
a的地址0x00000001里面存的是5这个值,也就是0x00000101
b的地址0x00000010存的也是5这个值,也是0x00000101
b=b+10后,是0x00000010的内存中5+10,也就是0x00000101+0x00001010=0x00001111
而a的地址0x00000001里面的数没有变化啊