본문 바로가기
BOOK/책읽고쓰다

[책읽기] C언어 포인터 - 다시 체계적으로 배우는

by KANG Stroy 2018. 9. 12.
728x90
728x90

C언어 포인터 - 다시 체계적으로 배우는

정재은

정보문화사 



이 책은 절판 되었다. 책을 사 놓고 읽지 않았다가. 시간이 나서 읽었다. C 언어를 공부하면서 느끼는 불안감은 C언어의 포인터라고 생각한다. 


대학교에서도 C언어 교육에서 포인터는 2학기로 넘어가던지 아니면 1학기에서 끝날때가 종종 있다. 포인터를 제대로 배울 기회는 거의 없어 보인다. 학원을 다니지 않으면 책으로만 접근 해야 한다. 


대부분의 C언어 책은 포인터가 주소라니, * , & 이 뭐니 뭐니 라고 동일한 이야기를 한다. 어느 책을 따라 쓴듯한 느낌의 책들이다. 처음 C가 나올때라서 그럴 수도 있을 것이다. 어셈블러가 지고 C언어가 생기면서 급하게 만들어진 책들로 인해서 동일한 내용들이 퍼진것이 아닐까? ;


동일한 내용이라도 포인터가 가지고 있는 기본적인 기능은 명확하다. 포인터는 변수이다. 포인터에는 번지 이외에는 어떠한 값도 들어갈 수 없다. 


포인터의 기본이라고 하면 이 사진 한장에 들어가 있지 않을까? 



이와 같이 그림들을 이용해서 설명을 한다. 


주소가 어떠니, 주소의 값이 어떠니 하는 것 보다. 한장의 사진이 더 명확해 진다. 전생의 참혹함은 당해본 사람이 더 잘알고, 사진을 본 사람이 더 잘 느낀다. 글로만 보아서는 잘 모른다. 


C언어도 글만 보고, 이렇구나 라는 생각에만 빠져 있으면 아무리 쉽게 이야기 해도 이해 할 수 없다. 알려고 하는 마음 가짐이 필요 하지 않을까? 


이 책이 어렵게 썻다고 이야기 하고 , 잘 썼다라고 이야기 하기도 한다. 배우는 사람이 얼마나 이해하고자 하는지가 제일 중요하지 않을까? 


조금 더 업그레이드 되고, 예제 문제가 들어가서 새롭게 다시 출간이 된다면, 좋은 C 언어 포인트 책이 될 것이라는 생각이 든다. 


int j,k;

int *ptr;

j =1;

k =2;

ptr = &k;

printf("j has the value %d and is stored at %p\n", j, (void *)&j);

printf("k has the value %d and is stored at %p\n", k, (void *)&k);

printf("ptr has the value %p and is stored at %p\n", ptr, (void *)&ptr);

printf("The value of the integer pointed to by ptr is %d\n", *ptr);


한번 생각 해 보시길~~ 

728x90

댓글