51. C++ 주소 연산자

51. C++ 주소 연산자 (&)

1. 개요

1.1 문서 개요

이 문서는 C++에서 변수의 메모리 주소를 획득하는 데 사용되는 주소 연산자 &에 대해 설명합니다. 해당 연산자는 포인터 개념 및 메모리 조작을 위한 기반 도구로, 변수와 포인터 간의 관계를 정의하고 다양한 저수준 프로그래밍 기술에서 핵심적인 역할을 합니다.

2. 내용

2.1 주소 연산자 &의 의미와 사용법

2.1.1 기본 개념

C++에서 주소 연산자 &는 변수 앞에 붙어서 해당 변수의 메모리 주소를 반환합니다. 이는 포인터 변수에 값을 할당하거나 함수에 참조로 인자를 전달할 때 사용됩니다.

int x = 10;
int* ptr = &x;  // x의 주소를 ptr에 저장

이 예제에서 &x는 변수 x의 주소를 반환하며, 이 주소는 포인터 ptr에 저장됩니다.

2.1.2 주소 연산자와 참조자 구문 구별

& 연산자는 참조자를 선언할 때도 사용되며, 이 경우는 주소 연산자가 아닌 참조 선언 연산자로 해석됩니다.

int a = 5;
int& ref = a;  // 참조자 선언

이와 같은 문맥에서는 &가 주소 연산자가 아니라 참조자 생성의 의미를 갖습니다.

2.2 함수에서의 주소 연산자 활용

주소 연산자는 포인터 인자를 사용하는 함수에서 특히 자주 사용됩니다.

void increment(int* p) {
    (*p)++;
}

int main() {
    int n = 3;
    increment(&n);  // n의 주소 전달
}

이 코드에서는 increment 함수가 포인터 인자를 받아 값을 간접 참조 방식으로 변경하며, &n을 통해 변수 n의 주소를 인자로 전달합니다.

3. 마무리

주소 연산자 &는 변수의 메모리 주소를 획득할 수 있게 하며, 포인터 선언, 참조, 함수 인자 전달 등에서 핵심적인 역할을 수행합니다. &는 문맥에 따라 주소 연산자 또는 참조 선언자 역할을 하므로 구문 해석 시 주의가 필요합니다.

댓글 달기

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

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