문제 이해가 ㅇ ㅏㄴ됨;; 아래 코드를 삽입해서 내용을 확인하란게 뭔소린지;;
#include <stdio.h>
int main(void){
int n = 0x64636261;
char *pn = (char*)&n;
char a = 'b';
char *p = &a;
for(int i=0; i<4;i++) {
printf("%c", *pn++);
}
printf("\n");
printf("%c\n", *p++);
printf("%c\n", *++p);
printf("%c\n", (*p)++);
printf("%c\n", ++*p);
printf("%X\n", n);
return 0;
}
저 문제가 의도하는 바는 char 은 1바이트고 int 는 4바이트니까, int 에 문자 4개를 저장이 가능하다는 것. 이러한 경우 빅엔디안, 리틀엔디안을 신경써야 함.
위 연습문제에서는 빅엔디안, 리틀엔디안 신경 쓸 필요 없음
main() 함수 만들고 문제가 요구하는데로 그대로 따라하면 됨
*p++ *++p (*p)++ ++*p 이것들 출력하는걸 for루프 안에 넣어야 되는건가요 그럼?? 저장된 내용을 확인하라는게 저 코드를 써서 하라는건지 뭔지 잘 모르겠어요
학교 수업 안 들었나... 왜 모를까. main 함수는 기본인데
main() 은 만들었는데... 그 저 문제에서 예시로 나온 for루프문 저걸 쓰라는건지 아니면 실제 풀때는 저건 상관없는지('확인해 보라'고 했으니) 뭔지 그걸 잘 모르겠어요 차라리 예시가 없으면 뭔가 작성해 보겠는데...
확인해보라는건 직접 해보란거잖아 - dc Cpp
그냥 구체적으로 적을게여 이렇게 지금 이해했는데 뭐가 틀려서 틀린건지 모르곘음.. #include int main(void){int n = 0x64636261;char *pn = (char*)&n;char a = 'b';char *p = &a;for(int i=0; i<4;i++) { printf("%c\n", *pn++);}printf("%c\n", *p++);printf("%c\n", *++p);printf("%c\n", (*p)++);printf("%c\n", ++*p);printf("%X\n", n);printf("\n"); return 0; }
https://gall.dcinside.com/board/view/?id=programming&no=1482477
문제 보면은 5개를 출력하라고 했으니까.. 내가 제시한 두번째 main() 보면 printf (...., c); 이거 4줄있는데.. printf 문을 삭제해야 할 거임. 그러면 위에 for 문 때문에 5줄 출력됨.