0
我想每个字节读取一个数组,但是该数组可以是任何大于一个字节的类型。每个字节读取阵列字节
采取例如以下代码:
unsigned short numbers[5] = { 1, 2, 3, 4, 5 };
unsigned char* point = (unsigned char*) numbers;
for (int i = 0; i < 5; i++)
{
std::cout << (int) *point;
point ++;
}
阵列是unsigned short
型的,因而每个元素是2个字节长。要读取内存中的连续数据,我尝试使用一位长的unsigned char
。打印5个第一个字节,我希望输出“01020”,但我得到“10203”。第一个字节丢失,但我不知道为什么。在我的IDE中,我检查了地址为numbers
和point
的地址,并且它们在循环之前都指向相同的内存地址。
因为你的机器是[little endian](https://en.wikipedia.org/wiki/Endianness#Atomic_element_size_8-bit_2)... – 2014-10-19 10:15:57