우선 실험을 해볼려고 이렇게 테스트를 해봤는데 어쨌든 결국 이랬는데도 의문이 안풀림.

int main()

{

char moon[100] = "moonjein";

int lee[100] = { 1,2,3,4,5 };

printf("%d ", moon);

printf("%x ", moon);

printf("%s ", moon);

printf(" ");

printf("%d ", lee);

printf("%x ", lee);

printf("%s ", lee);

printf(" ");

printf("%d ", &lee);

printf("%x ", &lee);

printf("%s ", &lee);

}

(결과값)

5700032

56f9c0

moonjein


5699624

56f828

r


5699624

56f828

r

우선은 lee는 배열명이니까 이걸 출력한다는건 위와같이 주소 위치를 나타내고 %d, %x, %s 전부 첫번째 주소 위치를 나타낸것같음.

문제는 문자열 배열 moon인데 똑같은 방식이라면은 moon도 lee처럼 전부 주소값이 입력되어야 정상인것을

%d, %x는 주소를 나타내고 근데 또 %s는 주소안에 들어있는 moonjein을 출력함.


이러면은 결론은 문자열을 출력하는 %s 변환문자 자체에 기능이 있다는건데

제가 풀이한게 맞는 말인가요?