|
| Posted by 지상현 | 2006-10-07 03:51:13, Hit : 3457 | |
|
|
|
[이 글에선 포인터가 무엇인지에 대해 다루지 않습니다. ]
그거 다 뻥입니다. -_-; 저도 옛날에 C 닦을 때 처음으로 포인터를 접하고 다들 어렵다고 해서 긴장했었는데... (하지만, 아직도 포인터에 대해 완벽히 이해하고 있지 못할 수도 있습니다.)
어렵다는 건 다 뻥입니다. 이제서야 확실히 깨달았습니다. 포인터가 어렵다는건 뻥이란 것을...
하지만 그래도 포인터가 어렵다!라고 하시는 분들께는 간단한 비유를 들어보겠습니다.
*포인터가 사칙연산이라면?
3 + 4 1 + 2 2 * 6 9 / 3
이 중의 위의 산수 문제를 보고 어렵다며 기겁하시는 분들은 아마 없을 거라고 생각합니다. 이 정도로 포인터는 간단한 내용을 담고 있습니다.
그럼 포인터의 뭐가 어렵다는 걸까요?
(13 + 322 * 28) / (52 - 10) + 199 * 321
자, 아마도 이 식을 암산으로 풀어내시는 분은 아마도 IQ가 아주 높은 사람일겁니다. 이 식을 생각만으로, 즉 암산으로 풀어보라면 대부분 GG치실 겁니다.
이런 식으로 여러분은 포인터의 본질이 아닌, 복잡하게 꼬아 사용한 여러 예들을 보며 포인터가 어렵다는 속임수에 넘어가고 계십니다. (저에게 + 의 모든 것을 이해했냐고 한다면 거짓일 겁니다. 마찬가지로 포인터도 완벽히 이해했다고 할 수 없지만, 저는 + 를 사용할 만큼의 충분한 지식을 가지고 있습니다. 포인터도 마찬가지입니다.)
실제로도 포인터도 사칙연산과 같은, 프로그래밍에 있어서 한 가지 연산의 하나일 뿐입니다. 포인터도 연산이라구요! 하지만 실제로 사용할때는 다소 복잡하게 사용할 수 밖에 없습니다. 그런 점이 포인터를 어렵게 하는 요소이고, 실제로 포인터는 매우 단순한 겁니다.
자, 그럼 포인터가 아직도 어렵다고 생각하시는 분들을 위해, 지금은 졸리기 때문에(..) 다음에 아주 짤막한 강좌를 올려보겠습니다.
창조에도 없는 포인터를 굳이 알 필요가 있느냐고 생각하실지도 모르지만, 포인터의 본질을 깨닫는다면 창조에서도 포인터를 따라할 수 있습니다. 그리고 이렇게 포인터를 사용하면 더욱 윤택한 창조 환경(?)을 누리실 수 있습니다. 창조를 돕는 대다수의 외부 라이브러리들이 포인터를 사용하니까요 |
|
|
김환욱 2006-10-07 AM 5:29:07 |
|
|
|
저도 예전에 잠깐 포인터 배웠는데 포인터 변수가 많아지니까 햇갈리더라구요(..) 역시 남이 쓴 코드를 보면 햇갈리는건 어쩔수 없나봐요..
근데 지상현님이 쓴 글을 자주 봐왔는데 설명을 너무 잘해주셔서 이해가 잘되네요.. |
|
|
강현구 2006-10-07 PM 8:03:41 |
|
|
|
포인터는 어떤 값이 저장되어 있는 주소 아닌가요? |
|
|
지상현 2006-10-07 PM 11:33:36 |
|
|
|
말 그대로 포인터는 메모리 어느 곳을 가르키고 있는 것입니다.
이건 그냥 표현식이 될 수도 있고, 변수가 될 수도 있습니다.
이 포인터를 변수에 담아 보관하면 포인터 변수가 되는 거죠.(이것이 흔히 포인터라고 하는 겁니다.)
다시 말해 포인터 변수는 메모리 어떤 번지의 주소를 담고 있으면서, 필요하면 그 번지의 값을 참조할 수 있는(읽거나 쓸 수 있는) 것입니다.
그 가르키는 번지가 잘못되었다면 참조하려고 할 때 Access Violation 같은 예외가 발생하게 됩니다. |
|
|
박종훈 2006-10-08 AM 6:53:28 |
|
|
|
아~ 지상현님의 바로 위 댓글을 보고, 이해가 쏙 갔네요~^^
하지만, 진짜 포인트를 알자하면 ... |
|
|
지상현 2006-10-08 PM 1:31:12 |
|
|
|
실제 내용은 저게 다고, 어디에 어떻게 쓰느냐가 복잡한 문제입니다.
하지만 이것도 쓰다보면 금방 익숙해집니다. |
|
|
지우개 Expert 3.0 제작자 : 천호성 님 [LINK] |
|
|
|
대박로또2005 제작자 : 최재일 님 [LINK] |
|
|
1 | 박종훈 님 | 15292 점 | |
2 | 지상현 님 | 8809 점 | |
3 | 손상진 님 | 7388 점 | |
4 | 권선중 님 | 6060 점 | |
5 | 이진백 님 | 5174 점 | |
|
|
|
가입일 | 닉네임 |
05/31 | 김동률 |
03/31 | 홍형기 |
09/01 | o00pp99oo |
12/27 | 이재민 |
11/20 | 이희철 |
|
|
|
|
. |
. |
. |
|