편집 기록

편집 기록
  • 프로필 알 수 없는 사용자님의 편집
    날짜2017.11.06

    reference와 pointer는 각각 어떤 때 쓰나요?


    referencepointer를 어떻게 쓰는 건지는 알고 있습니다. 제가 알고 싶은 건 referencepointer를 쓰는 것 중 어느 것이 더 적절한지입니다.

    어떤 경우에는 이게 정해져 있는데(++ 연산자는 reference만 쓰는 등) 안 정해져 있는 경우 보통은 변수가 중간에 바뀌는 경우는 보통 다들 포인터를 쓰더라구요.

    소스코드

    void add_one(int& n) { n += 1; }
    void add_one(int* const n) { *n += 1; }
    int main() {
      int a = 0;
      add_one(a); // a가 바뀌는지 안 바뀌는지 모름. a = a+1일 수도 있지만 a+1이 return될 수도?
      add_one(&a); // a가 바뀔 것이라 예상 됨
    }
    

    레퍼런스를 쓰는 것 보다 포인터를 쓰는 게 지금 뭘 하고 있는 건지 확실하게 알 수 있으니까 뭘 하는지 분명하게 전달하려면 레퍼런스보다 포인터를 쓰는 게 더 나은 방법인가요? 그러면 레퍼런스는 정말 필요할 때만(++연산자) 써야 하나요?

  • 프로필 윤도섭님의 편집
    날짜2016.01.14

    reference와 pointer는 각각 어떤 때 쓰나요?


    referencepointer를 어떻게 쓰는 건지는 알고 있습니다. 제가 알고 싶은 건 referencepointer를 쓰는 것 중 어느 것이 더 적절한지입니다.

    어떤 경우에는 이게 정해져 있는데(++ 연산자는 reference만 쓰는 등) 안 정해져 있는 경우 보통은 변수가 중간에 바뀌는 경우는 보통 다들 포인터를 쓰더라구요.

    소스코드

    void add_one(int& n) { n += 1; }
    void add_one(int* const n) { *n += 1; }
    int main() {
      int a = 0;
      add_one(a); // a가 바뀌는지 안 바뀌는지 모름. a = a+1일 수도 있지만 a+1이 return될 수도?
      add_one(&a); // a가 바뀔 것이라 예상 됨
    }
    

    레퍼런스를 쓰는 것 보다 포인터를 쓰는 게 지금 뭘 하고 있는 건지 확실하게 알 수 있으니까 뭘 하는지 분명하게 전달하려면 레퍼런스보다 포인터를 쓰는 게 더 나은 방법인가요? 그러면 레퍼런스는 정말 필요할 때만(++연산자) 써야 하나요?