선언될 때 &은 참조(reference)이지만 

1
int &= b;
cs

그냥 사용하면 &은 주소값을 가진다.

1
cout << &a;
cs



이런 주소값을 가지는 변수를 포인터라고 한다.

1
2
int *= &a
*= 15;
cs

포인터는 선언시에는 *을 사용하여 선언하고,

사용시에는 b 자체가 a의 주소값을 뜻한다.  앞에 *을 붙이게되면 해당 주소가 가리키는 값을 뜻한다.

즉 b = a의주소, *b = a의 값이 되는 것이다.



사용예시)

1
2
3
4
5
6
7
8
int a = 10;
int b = 15;
int*= NULL;
 
if(프로브)
    c = &a;
else if(질럿)
    c = &b;
cs

예를들어 스타크래프트에서 유닛을 선택한다고 하자.

내가 선택한 유닛을 컨트롤 하고자 할 때 위와 같이 선택한 유닛의 메모리주소를 받아와 선택할 수 있다.


1
*= 500;

cs

만약 이렇게 사용한다면 선택한 a 또는 b의 실제값을 500으로 변경할 수도 있을 것이다.

Posted by misty_
,