프로그래밍/C++

#34. 다중 포인터

코딩하는상후니 2022. 7. 19. 22:06

 

*다중포인터는 어떤 상황에 필요할까 ??
 
void SetMessage(const char* a) 
{ a = "Bye";  }

const char* msg = "Hello"; 
SetMessage(msg); 
cout << msg << endl;
 
=> "Hello" / "Bye" 어느 것으로 출력될까 ??
=> "Hello"
=> 이유는 ??
a 는 함수내부의 복사본 , 복사본에 "Bye" 의 주소를 넣은 것이기 때문에
실질적인 msg 에는 영향이 없음.
 
 
*그렇다면 어떻게 해야할까??
=> 포인터의 포인터
즉, 포인터의 주소를 저장할 수 있는 포인터를 매개변수로 받는다.
 
 
@.rdata  Hello주소
=> 리터럴 상수이기 때문
const char* msg = "Hello"; 
SetMessage(&msg); 
cout << msg << endl; 
void SetMessage(const char** a) 
{ 
	*a = "Bye"; 
	cout << *a << endl; 
	cout << **a << endl; => 어떤 값이 나오나 ?? 
} 
void SetMessage2( const char*& a ) 
{ 
	a = "Bye"; 
	cout << a << endl; 
	cout << *a << endl; 
} 
void SetMessage3( char** a ) => const char** 와 다른점은 무엇인가?? 
{ 
	**a = 'f'; 
	//a = &mmsg; // msg 는 const char 이기 때문 
	cout << *a << endl; 
	cout << **a << endl; 
} 
void SetMessage4(const char** const a) 
{ 
	*a = "Bye"; 
	const char* mmsg = "HI"; 
	//a = &mmsg; // const a 상수이기 때문 
	cout << *a << endl; 
	cout << **a << endl; 
}​
 

본 내용은 인프런의 루키스님 강의를 듣고 정리한 내용입니다.

 

 

'프로그래밍 > C++' 카테고리의 다른 글

#36. 2차원배열 &다중포인터  (0) 2022.07.19
#35. 다차원 배열  (0) 2022.07.19
#33. 포인터 & 배열  (0) 2022.07.19
#32. 배열기초  (0) 2022.07.19
#31. 참조 & 포인터  (0) 2022.07.19