
https://github.com/POCU/COMP3200CodeSamples
<aside> 💡 목차
</aside>
&<aside> 💡 참조란, 포인터를 사용하는 좀 더 안전한 방법이다
![number라는 변수는 100이라는 값을 가지고 있는데. number라는 변수를 다른 이름(reference)으로 부르고 싶을때
원본을 가르킨다는 의미로 포인터와 비슷하지만, 참조는 자료형 뒤에 & 표시를 붙임으로서, int의 참조형이라는 의미를 가진다
int* 은 ‘나는 포인터형 int야’ 이라고 말했었지?
int& 은 ‘나는 참조형 int야’ 이라고 말하는것과 같다
아래 글에서 &가 앞에있을때, 뒤에있을때 차이점을 명확히 하시오
[[ <자료형>& ] 와 [ &<변수> ] 의 차이점을 명확히 해야한다](https://cybecho.notion.site/c460b53a09e64ca4825756b7a0c55140) ](https://prod-files-secure.s3.us-west-2.amazonaws.com/09ccd4d5-876c-4bba-bbdf-cc77a0a11257/726b808c-d8d7-410b-8957-c99e67c7bbe2/Untitled.png)
number라는 변수는 100이라는 값을 가지고 있는데. number라는 변수를 다른 이름(reference)으로 부르고 싶을때
원본을 가르킨다는 의미로 포인터와 비슷하지만, 참조는 자료형 뒤에 & 표시를 붙임으로서, int의 참조형이라는 의미를 가진다
int* 은 ‘나는 포인터형 int야’ 이라고 말했었지?
int& 은 ‘나는 참조형 int야’ 이라고 말하는것과 같다
아래 글에서 &가 앞에있을때, 뒤에있을때 차이점을 명확히 하시오
[[ <자료형>& ] 와 [ &<변수> ] 의 차이점을 명확히 해야한다](https://cybecho.notion.site/c460b53a09e64ca4825756b7a0c55140)
NULL이 될 수 없다
NULL포인터 라는것이 불가능함
하지만 한번 참조형으로 만든 별칭은 이제 변경이 가능해짐.
number의 별칭이야! ..라고 하다가 나중에 가서
number2의 별칭이야! 라고 바꿀 수 있는 방법이없어요,
그래서 초기화 중에 반드시NULL이 될 수 없다

반드시 어떠한 변수를 대입해야만함.
즉, 위 코드처럼 하면 ERROR가 나고
int& reference = number;
처럼 ‘나는 number의 별칭이야~’ 라고 작성해야한다

number1 = 100, number2 = 200 이고,
reference는 number1을 참조한다고 적혀있다
즉, reference는 number1과 동일한 값을 가리키는 것임.
이제 다음 줄에서
reference=number2
기존 reference에 number2를 대입하려고 하는데,
이게 만약에 레퍼런스를 참조를 다른 거로 바꿀 수 있게 허용을 해버리면, 기존에 가르키던 별칭 대상, 즉 number1을 바꾸는것과 동일하잖슴
근데 그게 아니라, reference = number2
얘는 그냥 순수하게 대입인데
즉, number2에 있는 200을 reference에 대입을 하는데
그러면 reference도 number2도 둘 다 200이 되겠지?
기존에 reference가 가르키던number1도 200이 되니,
모든 변수의 값이 200이 되어버린다
그래서 별칭은 원본은 다른데 있다, 이렇게 생각하셈
</aside>
| int & | 나는 참조형 int다! | 참조형을 선언하는 변수 |
|---|---|---|
| & number | 나는 number의 주소를 불러온다! |
| int * | 나는 포인터형 int다! |
|---|---|
| * number | 나는 number의 주소를 가르킨다! |