작성
·
252
0
이틀동안 고민했어요.
이렇게 생각하면 맞는건지 궁금해요..
pp 포인터 변수는 main 스택프레임 안의 메모리에 박혀있고.
ex) const char** pp -> 0x00000001주소에 박혀있음
pp포인터 변수는 &msg의 주소를 가짐
pp 변수의 주소를 SetMessage 의 매개변수 a에 넣음.
*a 로 a(pp)변수가 가진 주소로 텔레포트 -> &msg
&msg가 가진 주소에 "bye"의 주소를 넣음
const char** pp = &msg;
//[매개변수][RET][지역변수 (msg(hello의 주소)) ][매개변수(a((msg의 주소)))][RET][지역변수]
// 매개변수 a 는 pp(&msg)의 주소를 가짐.
//*p로 pp 가 가지고있는 &msg주소의 값을 가져옴
// 어라? 주소가 또 있네? -> 그 주소를 바꾸는 것. (&msg가 가지고있는 값(주소)를 바꿈)
// 그래서 바뀌는 것.
SetMessage(pp);
cout << msg << endl;
말보다 그림으로 그릴걸그랬네요. 생각했던 흐름이 맞습니다. 감사합니다.