검색결과 리스트
컴퓨터/C언어에 해당되는 글 1건
- 2012.12.17 헷갈리는 포인터와 배열 확실하게 잡자
글
헷갈리는 포인터와 배열 확실하게 잡자
포인터 너무 난해하죠..? 저는 C언어를 공부하면서 처음으로 고비를 느낀게 포인터에서였는데요... 처음엔 이걸 도대체 왜 쓰는거야? 이런 생각도 많이 했는데 지금 보면 포인터는 정말 대단하고 좋은놈이에요 !
우리도 한번 포인터의 매력에 빠져볼까요?
포인터 ? 그거 * 아니야 ?
네 *이 맞습니다.
int a = 10;
int * ptr = &a;
이런 선언이 있다면 여기서 *과 &이 의미하는건 뭘까요? 일단 익숙한 &부터 볼까요? 어디서 많이 본것같은이놈은 바로 scanf 에서 입력을 받을 때 사용하는 놈이었죠? 그 때 &은 주소값을 의미한다고 배웠습니다. 그러면 ptr은 a의 주소값을 담고있다 라고 생각할 수 있겠네요. 그런데 a는 int형이죠? 그래서 앞에 int를 쓰고 주소값을 담고 있다는 뜻으로 * 을 쓰는거죠 ! 이제 위의 문장이 어느정도 이해는 가시나요?
포인터 도대체 왜 쓰는거야 ?
이놈의 포인터... 대체 왜쓰는 걸까요? 이유야 정말 많습니다... 함수부분에서 call by value와 call by reference를 배우셨나요? 안 배우셨으면 한번 읽어보세요 ~
· call by value
- 함수의 매개변수를 복사해서 사용 ... 실제 메인함수에서 전달한 매개변수에 영향을 끼치지못함
· call by reference
- 함수의 매개변수를 포인터 즉 주소값으로 사용 ... 포인터로 간접접근해서 메인함수에 영향을 미침
그 외에도 포인터를 사용하는 이유를 열거해 보자면
등등 진짜 셀수 없이 많습니다. 포인터의 필요성은 자료구조와 알고리즘을 배우다 보시면 느끼시게 될 겁니다. ㅎㅎ