-
참조와 포인터(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