1581, 72/80 회원가입  로그인  
   sihun1113
   [C기초] 04 - 포인터에 대한 오해

http://www.hackerschool.org/HS_Boards/zboard.php?id=Free_Lectures&no=1738 [복사]


*----------------------------------------------------------------------------------------------------------*

이 카테고리는 그동안 배웠던것이라던가 공부하면서 알게된 내용들을 중심으로 혹여 참고가 될 수 있을까 싶은 내용들을

모아둔 곳입니다. 따라서 이 글들을 대상이 되는 분들은.. 프로그래밍을 갓 시작했거나 개념이 마구마구 흔들리시는 분들

정도가 되겠습니다. 그러니 너무 욕하지는 말아주세요 =_=;;;



혹시 제가 잘못 알고 있는 부분들이라던가 궁금한 것이 있으면 쪽지 남겨주시거나 리플을 달아주시면 감사하겠습니다.

*----------------------------------------------------------------------------------------------------------*



여러분은 포인터에 대해 어떤 느낌이 드시나요? 무섭다? 짜증난다? 복잡하다?

저도 처음 포인터라는 녀석을 접했을때 굉장히 망설였습니다. 주변에서 '포인터는 정말 짜증난다', '포인터때문에 프로그램 하긴 글렀다' 등등 시작하기도 전부터 겁부터 잔뜩 집어먹고는 두려움반 걱정반으로 배우기 시작했습니다. 아니나다를까 대부분이 포인터에 대해서 설명해주기도 꺼려했고 마치 그거 쫌 안다는 것이 특권인냥 행동하는 사람도 있었습니다. (오류는 팍팍 내는 주제에 말이죠 ㅎㅎ)



그리고 제대로 설명된 책을 찾는것도 너무 힘이 들었습니다.

제가 가진 C나 API 등에 관련된 서적만도 벌써 20권 가까이 되는데요(사실 많은건 아니죠) 포인터에 대해서 '딱 이거다!' 라고 짚어주는 것은 찾기가 너무 힘들었습니다. 물론 포인터라는 녀석에 어느정도 익숙해 진 지금은 '이게 이런 뜻이었구나'하는게 많지만 뭐하나 아는것도 없는 생판 첨보는 사람은 알길이 정말 막막하죠.



하지만 제가 이것만은 확실하게 말씀드릴 수 있습니다.



포인터도 단순한 변수에 불과합니다.



누가 처음부터 변수를 자유자제로 다룹니까? 함수도 누가 처음부터 막 만들어댑니까? 수없이 많은 오류를 내고 여기저기서 긁어오기도 하고, 모니터에 머리도 좀 쥐어박고 하다보니 어느샌가 익숙해진게 변수나 수식, 함수 아닌가요? 그런데 포인터는 어떤가요? 처음부터 지레 겁부터 먹고 써 볼 엄두를 내지 못하죠.



저는 수영을 못합니다. 그런데 한가지 확실하게 알고 있는 건 있습니다. 전 물을 먹는게 싫어서, 또 별 필요성을 못느껴서 수영 연습을 게을리해 '잘 못하는 것'뿐이지 '할수 없는 것'은 아닙니다. 세계 최고의 인간물개라 불리우는 사람들도 태어나자마자 물장구치고 50m를 20초에 끊고 그런건 아니라는겁니다.



지금까지 우리가 들어왔던 포인터에대한 소문은 거품이 너무 많습니다. 마치 물에들어가면 누구나 빠져 죽는다는 소문처럼. 그러나 실상은 그렇지 않습니다. 포인터를 잘 다룬다는 것은 그만큼 많이 써봐서 익숙해졌을 뿐입니다.

사람들이 포인터를 두려워하는 이유는 오류가 생소한데다가 가끔 디버깅도 안되는 에러가 뜨면서 프로그램이 멈춰버리기 때문이지요. 하지만 이런것들도 귀찮기는 하지만 서너번 겪다보면 어느샌가 비슷한 상황이 생길땐 대충 '아 요놈이나 요놈 때문이겠구나'라는 감이 옵니다. 디버깅 쯤이야 우습죠. 굳이 디버거 돌리지 않고도 잡아낼 수 있을때가 옵니다.



확실히 포인터가 일반 변수들에 비해 주의해야할 것이 많다는 것은 사실입니다. 하지만 이건 '귀찮은 것'이지 '할 수 없는 것'은 아닙니다.



운전을 처음 배우는 것은 누구에게나 어렵습니다. 하지만 한번 익혀두면 얼마나 편합니까? 포인터도 마찬가지 입니다.



제가 포인터를 배운 다음에 절실히 느낀것 한가지가 있다면

'포인터가 없는 다른 언어는 정말 너무 불편하다'

라는 것 입니다. 그정도로 포인터는 프로그래밍에 있어서 편리한 녀석인 겁니다. 이렇게 편리한 녀석을 왜 피해가는 지 원.. ㅎㅎ;;;;



아무튼 제가 왜 이렇게 열을 내면서 포인터를 해보라고 열을 내는지는 대충 이해하시겠죠?

포인터 사실 알고보면 별거 없습니다. 소문만 무성할 뿐... 처음 개념만 얼추 이해하고 넘어가면 정말 쓰기 편한게 포인터입니다. 오류도 처음엔 어마어마하게 뜨겠지만 하나둘씩 해결해나가다보면 어느새 여러분도 '그깟 포인터 따위'라며 웃고있는 자신을 보게 될겁니다.

출저-때릴꺼야

  Hit : 5493     Date : 2011/05/01 11:25



    
yj6393 좋은 강좌 감사합니다.
다시 자신감을 갖게 해주는 것 같아요
(사실 포인터때문에 접을려고 했어요.ㅡㅡ;)
2012/07/28  
161   C언어 소켓프로그래밍 책 추천부탁![2]     JJ4eye0ng
02/10 5511
160   [퍼온글] 해킹 공부법     한승재
03/30 5500
159   [C기초] 06 - 포인터의 사용     sihun1113
05/01 5495
  [C기초] 04 - 포인터에 대한 오해 [1]     sihun1113
05/01 5492
157   int 와 unsigned int 에서...[4]     hipro
12/04 5489
156   [자작글]우분투용 그림판을 깔아보자!!!     한승재
03/01 5486
155   [자작] 초보 리버싱 ! [4][2]     siosio24
08/17 5452
154   [자작글]C언어 변수항에 대하여 알아보자!(풀이포함)     한승재
12/26 5439
153   리버스엔지니어링 잘하시는분..?     pcw0629
08/26 5432
152   컴파일러 종류중..[6]     kevin997741
07/18 5430
151   OSI Reference 7 Layers[2]     Mach
04/17 5416
150   스크립트 알려주실분~1     lcd7132
04/29 5413
149   [자작글] 아스키 코드에 대하여 알아보자!     한승재
01/06 5400
148   IT분야로 진로고민이나,취업,이직고민으로 궁금한점들이 많으시죠~?     koreais0
08/08 5381
147   우분투 파티션 설정 방법입니다.[1]     libera826
12/25 5369
146   관리자님 있긴 한가요??[1]     rabbitlycat
04/30 5351
145   관련 정보도 어디서 얻을 수 있는지?[1]     39ghwjd
09/12 5346
144   html와python강의[2]     hktaehyung
05/13 5342
143   ㅇㅅㅈ?     rabbitlycat
05/08 5327
142   윈도우에서 APM 설치 방법입니다.[1]     libera826
12/25 5307
[1]..[71] 72 [73][74][75][76][77][78][79][80]

Copyright 1999-2024 Zeroboard / skin by Hackerschool.org / Secure Patch by Hackerschool.org & Wowhacker.com