|
아래의 경우 포인터 자체의 주소입니다.
포인터 변수의 메모리 위치죠.
포인터 변수도 메모리 주소를 가지고 있기 위한 공간이 필요합니다.
공간이 있어야 그곳에 메모리 주소를 저장할 수 있죠.
예를 들어 int *a 에서 이 포인터가 100 이라는 주소에 다른 메모리
주소를 저장하기 위한 공간이 있다고 가정하고. 이 공간에 다른 메모리
주소인 200 이 저장되어 있다고 하면
cout << a; 라고 하면 a의 값을 출력하므로 a에 저장되어 있던 주소값
200이 출력됩니다.
cout << &a 라 하면 a의 주소 자체가 출력되므로 100 이 출력됩니다.
행인 님이 쓰신 글 :
: int * a;
: a = new int;
: *a = 0;
:
: cout << a;
:
: 프로그래밍을 오래 해왔지만 원론적인 부분을 그냥 지나쳐 왔네요 그래서 고수가 안되는지도..ㅡ_ㅡ;
:
: 위와 같이 출력을 하면 a의 주소가 출력이 됩니다.
:
: 그렇다면
:
: int * a;
: a = new int;
: *a = 0;
:
: cout << &a;
:
: 라고 하면 또 다른 값이 나오는데 그건 무엇이 출력되는건지요
:
: 고수분들 알려주세요
|