输出不理解
#include <iostream>
using namespace std;
int main()
{
int a[5] = { 0,1,2,3,4 };
int i = 1;
cout <<i++ <<endl<<i++<< endl << i << endl <<-- i <<endl<<--i << endl;
return 0;
}
这个源码的运行结果应该是1 2 3 2 1吧,++i 就是先自加再调用,i++ 就是先调用再自加 ,-- 也是一样的
两个知识点
--i 1 0 0
--i 0 -1 -1
此时指令应该变成了
cout << i++ << i++ << i << i << i;
且此时i的值变成了-1
此时进行指令的执行,你问为什么不处理++了? ++在i后面啊,只有i被使用了后才会加啊
那么cout第一个输出的是第一个i++,也就是打印i,然后再将i的值自增1
操作 进入 操作后 i的值变为 打印输出
i++ -1 0 0 -1
i++ 0 1 1 0
然后打印三次i
操作 进入 操作后 i的值变为 打印输出
i++ 1 1 1 1
i++ 1 1 1 1
综上,打印为 -1 0 1 1 1