반응형
안녕하세요 허언증입니다.
참조자와 포인터의 차이점에 대해 설명 하도록 하겠습니다.
1.참조자란?
쉽게말해서 이미 선언한 변수에 다른 이름으로 또 선언을해서 사용할 때 사용합니다
int main(void){
int number1 = 10;
int &number2 = number1;
number2 =number2 + 10;
cout << number1 << endl;
cout << number2 << endl;
return 0;
}
int number1 = 10의 의미는
number1 변수에 10을 입력하라! 입니다.
그렇다면
&number2 = number1의 의미는
데이터를 입력 받은 number1 변수에다
number2 라고 이름을 한번 더 지어 주는것입니다.
&number2는 number1의 두번째 이름입니다.
프로그램을 실행 해 보면
출력 결과입니다.
number2에 값을 새로 입력하면 같은 변수를 뜻하기 때문에
number1도 변경 된 걸 볼 수 있습니다.
반대로 number1를 바꾸더라도 number2가 바뀝니다..
그렇다면 한 개만 참조 할 수있나?
여러개도 참조가 가능합니다.
int main(void){
int number1 = 10;
int &number2 = number1;
int &number3 = number1;
int &number4 = number1;
return 0;
}
위와 같이 사용이 가능합니다!!
포인터와 다른점!!
1. 포인터는 주소를 받고 참조자는 변수를 받습니다!
2. 포인터는 주소(동적)가 계속 변하지만 참조자는 고정된 변수를 받아서 변하지 않습니다
3.포인터는 NULL이 있지만 참조자는 NULL 값이 없습니다.
파헤치기
int main(void){
int number1 = 10; //number1에 10 입력
int &number2 = number1; //참조변수에 number1 입력
int *number3 = &number1; //number3 포인터 변수에 number1주소 입력 받기
return 0;
}
&number2 일때와 &number1 때 완전 다르게 사용됩니다.
&number1 : 주소값
&number2 : 참조 변수
반응형
'# Language > [ C & C++ ]' 카테고리의 다른 글
[C & C++] inet_addr(), inet_aton(), inet_ntoa() (0) | 2019.12.03 |
---|---|
[C & C++] 포인터 정리 (0) | 2019.11.05 |
[C & C++] STL 반복자 iterator (0) | 2019.11.05 |
[C & C++] enum 열거형 (0) | 2019.11.05 |
[C & C++] rand()와 srand()함수 (0) | 2019.11.05 |