Я ожидаю, что выход будет 131200 (2 ^ 17 + 2 ^ 7), а не 2. Имеет смысл в теории, но это не работает.Битовый массив arr [3] после строки типирования указателя будет выглядеть примерно так: [00000000 00000010 00000000 10000000].(Пожалуйста, скажите мне, если я где-то не прав.)
#include <stdio.h>
int main(void){
int arr[5];
arr[3] = 128;
((short *) arr)[6] = 2;
printf("%i\n", arr[3]);
}