在我的cout声明中:
cout << ia[cnt++] << "\t" << *beg << "\t" << beg++ << endl;
beg++
影响早期*beg
语句的输出,我无法理解为什么?
完整代码:
int ia[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int *beg = begin(ia); // pointer to the first element in ia
int *last = end(ia); // pointer one past the last element in ia
int cnt = 0;
while (beg != last)
{
cout << ia[cnt++] << "\t" << *beg << "\t" << beg++ << endl;
}
将beg
的增量移到cout语句之后会导致代码按照我的预期运行。有人可以解释一下这里发生了什么吗?