以下のプログラムのb_testにはなぜ0x3322ではなく、0x4433が代入されるのでしょうか?

#include <stdio.h>

typedef struct
{
unsigned char a;
unsigned short b;
} TEST_2;

int main(void)
{
unsigned char bytes[] = { 0x11, 0x22, 0x33, 0x44 };
TEST_2* pMemoryDevice = (TEST_2*)bytes;
unsigned char a_test = pMemoryDevice->a;
unsigned short b_test = pMemoryDevice->b;

printf("0x%X\n", b_test);

return 0;
}