这个知识点有的时候还挺难想明白的,对于这种问题,像我一样的白菜初学者可以打几行代码试上几次,就清楚多了
- 前加(++i型)
我的理解就是,先自增,立刻就返回自增后的值,比如下列代码:
(我用c#来举例,其他语言在原理上都是类似的啦~)
int number1 = 1;
Console.WriteLine(++number1); //打印++number1
//输出的结果是2,自增以后的结果
++number1就会把自增后的值立刻返回,屏幕上打印的就是自增后的结果啦
- 后加(i++型)
先自增,但是不会立刻返回值
int number2 = 1;
Console.WriteLine(number2++); //打印number2++
//输出的结果是 1,自增以前的结果
无论是前加还是后加,对于【下一条指令】,都是自增以后的值
//++i
int number1 = 1;
Console.WriteLine(++number1); //打印++number1,输出的结果是2
Console.WriteLine(number1); //打印number1,输出的结果是2
//i++
int number2 = 1;
Console.WriteLine(number2++); //打印number2++,输出的结果是 1
Console.WriteLine(number2); //打印number2,输出的结果是2
两种自增方式对下一条指令输出的结果都是自增后的结果,但是在中间过程会有不同