有一道题如下:
int x = 2,求 (x++) / 3 = ____ ,我填的答案是0。
我在我自己电脑上试着运行过这个,也的确是0,但是如果是改成
x = ( x++ ) / 3,然后输出x的话,这个x就是1,为什么呢?
但是如果改成 y = ( x++ ) / 3 ,然后输出y的话,那么y就是等于0,y初始化和没初始化没区别。对这个有点疑惑。
=表示赋值,x++是表示“先用后加”,但x=(x++)/3,x++外面有括号,故先进行++运算,x+1=3,x=3/3=1。
x=(x++)/3 x变0 你后面 y=(x++)/3 y变0 x变1
x = (x++) / 3;//右边得1赋值给左边
y = (x++) / 3;//右边得1赋值给左边
所以x,y都为1,没毛病!
没毛病啊 只是换了个字母代表 没啥区别啊
将(x++) / 3的计算结果,重新赋值给x和y,与x和y的初始值无关,是纠结初始值?
没毛病 ,不知道你想表达什么