1학년 대학 수업/C++ 프로그래밍

주소연산자

hawon6691 2025. 9. 11. 16:34
728x90

C/C++에서 &는 주소 연산자라고 불리며, 변수의 메모리 주소를 가져오는 데 사용됩니다. 이 개념은 포인터와 함께 매우 중요한 역할을 해요. 비유를 통해 쉽게 풀어볼게요:


🧠 기본 개념

int a = 10;
int* p = &a; // a의 주소를 p에 저장
  • &a는 변수 a가 저장된 메모리 위치(주소)를 의미합니다.
  • p는 그 주소를 저장하는 포인터 변수예요.

🎭 비유로 이해하기

📦 비유: 집 주소와 택배

  • a는 집 안에 있는 사람입니다.
  • &a는 그 사람의 집 주소예요.
  • 포인터 p는 주소를 적은 택배 송장입니다.

예를 들어:

  • 우리가 a = 10이라고 하면, 사람이 10개의 사과를 가지고 있는 것.
  • &a는 "이 사람이 어디 사는지 알려줘!"라는 요청.
  • 포인터는 "이 주소에 가면 사과를 가진 사람이 있어요!"라고 알려주는 역할.

🔍 왜 주소가 필요할까?

상황주소 연산자의 역할

함수에 값 전달 값을 복사하지 않고 원본 주소를 넘겨서 직접 수정 가능
동적 메모리 new, malloc 등으로 할당된 메모리의 주소를 저장
배열 처리 배열의 시작 주소를 통해 반복적으로 접근
효율성 큰 데이터를 복사하지 않고 주소만 넘겨서 처리 속도 향상

✅ 실전 예시

void change(int* ptr) {
    *ptr = 100;
}

int main() {
    int a = 10;
    change(&a); // a의 주소를 전달
    printf("%d\n", a); // 출력: 100
}
  • &a를 넘기면 함수가 a의 원본을 직접 수정할 수 있어요.

주소 연산자 &는 단순한 기호가 아니라, 데이터를 간접적으로 다루는 능력을 부여하는 도구예요.

728x90

'1학년 대학 수업 > C++ 프로그래밍' 카테고리의 다른 글

3주차 예습 과제  (0) 2025.09.13
& 기호의 용도  (0) 2025.09.11
연산자의 종류  (0) 2025.09.11
#include <stdio.h>과 #include <iostream>의 차  (0) 2025.09.11
전처리기  (0) 2025.09.11