포인터 꿀팁

=== 2학년동안 포인터를 당연히 배우고 쓰는 법도 알고 있었지만
뭔가 명쾌하지 않고 애매한 부분이 있고
쓰다보면 헷갈리는게 있었는데
그걸 딱 뚫어버린 개념을 정리해봄
이걸 2년만에 깨닫다니…

1. 포인터 정의(뇌피셜로)

포인터를 정의해 보면 두가지 영역이 있다.

  1. 포인터 자체의 주소가 저장되는 영역
  2. 포인터가 가리키는 영역(data)

pointer1
(보통 1번은 동그랗게 그리고 2번은 네모로 그림)
(근데 1번을 화살표까지 같이 있는 애라고 생각)
(근데 더 명확하게 이해하려면 그냥 1번을 화살표라고 생각)

그러므로 포인터의 1번을 화살표라고 하고
2번을 data라고 하겠음

2. 포인터가 등호 왼쪽에 있을때랑 오른쪽에 있을 때를 구분

  • 왼쪽에 있는애는 1번이고 오른쪽에 있는애는 2번임
    예를 들면
    1
    2
    3
    
    int x = 1, y = 2;
    int* px = &x;
    int* py = &y;
    

    위와 같은 포인터가 있을때

    1
    
    px = py
    

    이 경우 px의 화살표를 py가 가리키는 data에 꽂는다는 명령

3. 더블 포인터인 경우

dpointer 1번이 하나 더있다고 생각하면 됨

4. 결론

  • 등호 왼쪽에 있을때는 화살표
    오른쪽일때는 데이터 영역
  • 사실 더블포인터를 어따쓰지?? 라고 생각했었는데
    tree를 만들다가 너무 절실하게 필요한 적이 있었다.
    여기에 정리
  • 참고 자료 : 내뇌피셜
    그래서 전혀 틀린말이 있을수도 있다.

태그: ,

카테고리:

업데이트:

댓글남기기