vc6.0下前加到底是如何实现的

vc6.0下前加到底是怎么实现的?
大家看下面的代码:
#include   <iostream>
int   main(void)
{

int   a[]   =   {1,2,3,4};
int*   p   =   a;
std::cout   < <   *p   < <   "   "   < <   *(++p)   < <   std::endl;
return   0;
}
输出结果是2   2
谁给我解释一下。

------解决方案--------------------
cout < < 这个是从右开始计算的。明白了吧?