C++프로그래밍

20130329_함수포인터(1)

성엽이 2013. 3. 29. 16:37


6_11.c


6_12.c


6_12_1.c


base.c


base1.c


test.c


1. 먼저 한글은 한글자당 2byte를 할당 받음. 

2. char *T = "안녕하세요\n"; , 포인트변수 T 를 할당하였고, T가 가지고있는 주소를 따라가서 그 안에 "안녕하세요\n" 를 넣어둠! 

3. printf(T); , T의 주소를 찍어주었고, printf 는 심볼테이블에 적히는 자료형이 int(  *)(const char *,...) 이므로 

문자형 상수인 const char * 에 의해 T의 주소를 따라간다. 

4. 그러므로 printf(T); 는 '12녕하세요' 가 출력 되었다.

5. 밑에 printf(0x0040B000); 로 컴파일을 하면 경고메세지가 뜬다. "안녕하세요\n" 가 문자형상수이므로 같은 자료형으로 맞춰 주어야 하기 때문이다. 그래서 앞에 캐스팅을 해줘서 자료형을 맞추면 경고메세지가 사라지고 '12녕하세요'

가 제대로 출력된다.