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