ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 참조와 포인터(1)
    @ 16. 1 ~ 17. 1/C++ 2013. 2. 13. 22:09

    참조와 포인터

    포인터는 &를 붙여서 주소로 만들어야하지만 참조는 그럴 필요가 없다.

    int a = 5;

    int &ref=a;

    int *ref=&a;

    사용시 포인터는 *를 붙이지만 참조는 없어도된다.

    ref=10;

    *ref=10;

     

    참조만의 특징

    1. 초기화가 필요하다

    포인터의 경우 무엇을 가리키는지 알 수 없는 것도 만들수 있다.

    int *ptr;

    하지만 참조의 경우

    int &ref; 는 안된다.

     

    2. 가리키는 대상을 변경할 수 없다.

    포인터는 도중에 가리키는 대상을 변경할 수 있다.

    int a;

    int *ptr=&a;

    int b;

    ptr=&b;

    이런식으로 변경이 가능하지만

    참조는..

    int &ref=a;

    ref=b; 이러면 에러다..

     

    3. 첨자를 붙일 수 없으며 숫자도 더할 수 없다.

    포인터의 경우

    int *ptr=&a;

    ptr[3]=2;

    ptr+=2; //주소값이 변한다 8byte

    이 가능하지만..

    참조는..

    int &ref=a;

    ref[3]=2; // 안된다.

    ref+=2;

    그냥 a에 2를 더한값이다.

    참조의 유용점

    *반드시 뭔가를 지정해야 하므로 초기화를 잊는 실수가 일어나지 않는다.

    *지정한 대상이 변경되어 생길 수 있는 실수가 일어나지 않는다.

    *배열 접근으로 인한 실수가 일어나지 않는다.

    '@ 16. 1 ~ 17. 1 > C++' 카테고리의 다른 글

    역삼각형 *모양 출력  (0) 2013.02.16
    참조와 포인터(2)  (0) 2013.02.13
    분할컴파일시..extern, static  (0) 2013.02.12
    포인터 정리(4)  (0) 2013.01.31
    void 형 포인터 및 함수 포인터(3)  (0) 2013.01.31
Designed by Tistory.