|
김원형.아리매 님이 쓰신 글 :
: 아래의 경우 포인터 자체의 주소입니다.
: 포인터 변수의 메모리 위치죠.
:
: 포인터 변수도 메모리 주소를 가지고 있기 위한 공간이 필요합니다.
: 공간이 있어야 그곳에 메모리 주소를 저장할 수 있죠.
:
: 예를 들어 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;
: :
: : 라고 하면 또 다른 값이 나오는데 그건 무엇이 출력되는건지요
: :
: : 고수분들 알려주세요
|