C++/C++ 기초 플러스 6판(Book)
[C++] 포인터 선언과 초기화
suppresswisely
2025. 3. 22. 21:12
포인터 선언
포인터를 선언할때 다음과 같이 선언을 한다.
int* p_updates;
여기서 int*는 데이터 타입이고 p_updates가 포인터(주소)이다, * p_updates는 포인터가 아니라 int형 변수이다.[1]
포인터 다중 선언
int* p1, p2;
여기서 p1은 포인터 변수고, p2를 보통의 int형 변수로 생성된다.[2] 그러므로 p1과 p2를 모두 포인터 변수로 만들려면 각각의 포인터 변수 이름 앞에 * 연산자를 따로 사용해야 한다.[2]
위험한 포인터 선언
long * fellow;
*fellow = 223323;
이것은 왜 위험할까?
위에 글을 토대로 fellow가 포인터(주소)이다, * fellow는 int형 변수이다. 그렇다면 223323은 어디에 저장 되었을까?
이것은 아무도 모른다. fellow를 초기화하지 않았기 때문에 fellow에는 지금 엉뚱한 값이 들어 있을 것이다.[3]
올바른 포인터 선언
// 주소 대입
int* pt;
pt = (int*) 0xB8000000;// 데이터형 일치
// new 사용
int * pn = new int;
// 다른 변수 활용
int higgens = 5;
int* pt = &higgens;
위와 같이 선언을 해야 올바른 선언이 가능하다.[4]
[1]p.183
[2]p.184
[3]p.186
[4]pp.187-188