关于指针的一个小疑点

关于指针的一个小问题
有下面一段代码:
int i=65;
char* cp=reinterpret_cast<char*>(&i);
cout<<*cp<<endl;
cout<<cp<<endl;
输出结果是
A
A
为什么呢?
我认为i的内存实体应该是00000000 00000000 00000000 01000001,字符指针变量cp应该指向i的首地址,而首地址的实体值是00000000,所以*cp和cp应该输出空(或0)字符而不应该是A啊,怎么不对呢?

------解决方案--------------------
楼主可以google下大端小端问题,你没有明白数据在内存中的存放方式~~
------解决方案--------------------
楼主的属于小端字节序,将低位的字节放在起始地址
------解决方案--------------------
我们所能见到的超过90%的机器都是小端的,arm、x86都是

powerpc是大端,自从苹果放弃PowerPC之后,也只能在moto的手机和某些服务器上见到了