52. C++ 포인터 선언

52. C++ 포인터 선언 (int* p)

1. 개요

1.1 문서 개요

이 문서는 C++에서 포인터를 선언하는 문법 int* p를 중심으로 포인터 변수의 정의, 메모리 주소 저장, 타입 안정성 등의 개념을 설명합니다. 포인터는 동적 메모리, 배열, 함수 포인터 등의 핵심 기능 구현에 필수적인 역할을 수행합니다.

2. 내용

2.1 포인터 선언 구문

2.1.1 기본 구조

포인터는 특정 타입의 변수 주소를 저장하는 변수입니다. 선언 형식은 다음과 같습니다.

int* ptr;

위 구문에서 ptrint형 변수의 주소를 가리키는 포인터입니다. 메모리 주소를 저장하는 변수이므로 간접 참조를 통해 원본 데이터를 제어할 수 있습니다.

2.1.2 타입 일치의 중요성

포인터는 자신이 가리키는 변수와 타입이 반드시 일치해야 합니다.

double d = 3.14;
int* p = &d;  // 잘못된 코드 (타입 불일치)

이처럼 서로 다른 타입 간의 포인터 사용은 명시적 형 변환 없이는 허용되지 않으며, 컴파일 오류의 원인이 됩니다.

2.2 여러 포인터 선언 시 주의점

int* a, b;  // a는 int 포인터, b는 일반 int 변수

위 구문에서 a만 포인터이고 b는 일반 정수 변수입니다. C++에서는 * 기호가 변수마다 붙어야 포인터로 인식되므로 다음과 같이 선언하는 것이 명확합니다:

int *a, *b;

2.3 초기화 및 null 상태

포인터는 선언 후 초기화되지 않으면 쓰레기 값을 가질 수 있으며, 반드시 nullptr로 초기화하는 것이 권장됩니다.

int* ptr = nullptr;

3. 마무리

C++에서 int* p 형식의 포인터 선언은 특정 타입의 변수 주소를 저장하기 위한 구조로, 메모리 조작의 핵심 도구입니다. 포인터 선언 시 타입 일치, 명확한 구문, 초기화 여부 등에 유의해야 합니다.

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

error: Content is protected !!
위로 스크롤