Порядок хранения элементов машин и массивов - PullRequest
0 голосов
/ 14 мая 2019

Я обеспокоен тем, как массивы хранятся в C. Например, у меня есть такой массив:

unsigned char array[] = {1, 0};

У меня есть машина с прямым порядком байтов, поэтому, насколько я знаю, элементы этого массива будут храниться в памяти в обратном порядке, например [0, 1].

Но когда я выполняю такой код:

std::cout << (void*)&array[0] << std::endl;
std::cout << (void*)&array[1] << std::endl;

Я получу два адреса. Второй будет больше на единицу.

Я не понимаю этого, потому что если элемент 0 будет помещен сначала в память, а затем 1, то почему адрес первого элемента массива (значение 1) меньше, чем второй элемент (значение 0).

...