char num;
scanf("%d",&num);
num의 주소값이 1000 이라고 치면,
scanf로 정수값 입력받으면 1000부터 저장되잖아요. num의 주소값 넘겨줬으니깐..
근데 %d가 4바이트 정수로 받겠다는 뜻이니깐, num은 1바이트 char 형이긴 해도, 나머지 3바이트 까지 침범해서 저장되잖아요..
저기서 &num이 (char *)인데.... 함수 내부적으로 들어가면 %d 때문에 (int *) 이런식으로 형변환 되서 동작하는건가...??
scanf("%d",&num);
num의 주소값이 1000 이라고 치면,
scanf로 정수값 입력받으면 1000부터 저장되잖아요. num의 주소값 넘겨줬으니깐..
근데 %d가 4바이트 정수로 받겠다는 뜻이니깐, num은 1바이트 char 형이긴 해도, 나머지 3바이트 까지 침범해서 저장되잖아요..
저기서 &num이 (char *)인데.... 함수 내부적으로 들어가면 %d 때문에 (int *) 이런식으로 형변환 되서 동작하는건가...??
그 주소를 int 데이타형 주소로 해석함
int num;
scanf(\"%c\",&num);
이럴땐 &num이 int형 포인터인데... 함수 내부적으로는 char * 으로 형변환 되는거?
저장하면 4바이트 공간에서 젤 앞 1바이트만 저장되잖아...나머지 3바이트는 쓰레기값 그대로 들어있고...