int main(void)

{

int value = 0x00110012;

short* p = (short*) & value;

printf("%hd %hd\n", *(p+1), *p);


return 0;

}


1.이거 왜 결과값이 17, 18인가요? 19,18이여야 되는거 아닌가요?


2.그리고 *(p+1)을  *++p 아니면 *(++p)로 바꾸면 왜 결과값이 17,17이 되는건가요?


3.그리고 위에서 value값을 0x00110013으로 바꾸면 결과값이 왜 17,19로 *(p+1) 값만 그대로인건가요?


c언어 문제 ㅈㄴ술술 풀다가 포인터가니까 ㅈㄴ막히네요....

형님들 답변좀 부탁드립니다 ㅠㅠㅠ