선언될 때 &은 참조(reference)이지만
1 | int &a = b; | cs |
그냥 사용하면 &은 주소값을 가진다.
1 | cout << &a; | cs |
이런 주소값을 가지는 변수를 포인터라고 한다.
1 2 | int *b = &a *b = 15; | cs |
포인터는 선언시에는 *을 사용하여 선언하고,
사용시에는 b 자체가 a의 주소값을 뜻한다. 앞에 *을 붙이게되면 해당 주소가 가리키는 값을 뜻한다.
즉 b = a의주소, *b = a의 값이 되는 것이다.
사용예시)
1 2 3 4 5 6 7 8 | int a = 10; int b = 15; int*c = NULL; if(프로브) c = &a; else if(질럿) c = &b; | cs |
예를들어 스타크래프트에서 유닛을 선택한다고 하자.
내가 선택한 유닛을 컨트롤 하고자 할 때 위와 같이 선택한 유닛의 메모리주소를 받아와 선택할 수 있다.
1 | *c = 500; |
만약 이렇게 사용한다면 선택한 a 또는 b의 실제값을 500으로 변경할 수도 있을 것이다.
'프로그래밍 공부 > C++' 카테고리의 다른 글
문자열 길이구하기, 복사하기, 추가하기 (포인터 이용) (0) | 2018.03.12 |
---|---|
정적할당과 동적할당 (0) | 2018.03.12 |
참조(Reference) (0) | 2018.03.12 |
스택, 큐 구현하기 (0) | 2018.03.10 |
폭탄찾기게임 (for문 연습) (0) | 2018.03.10 |