C++프로그래밍
20130329_함수포인터(1)
성엽이
2013. 3. 29. 16:37
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녕하세요'
가 제대로 출력된다.