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

& 기호의 용도

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

C/C++에서 & 기호는 문맥에 따라 다양한 의미를 가지며, 매우 중요한 역할을 합니다. 아래에 그 용도를 모두 정리해볼게요:


🧠 1. 주소 연산자 (Address-of Operator)

  • 사용 위치: 변수 앞
  • 예시: int a = 10; int* p = &a;
  • 설명: 변수의 메모리 주소를 가져옵니다. 포인터를 초기화하거나 함수에 주소를 전달할 때 사용됩니다.

🔁 2. 참조자 (Reference) [C++ 전용]

  • 사용 위치: 변수 선언 시
  • 예시: int a = 10; int& ref = a;
  • 설명: 참조자는 기존 변수의 별칭(alias)입니다. ref를 수정하면 a도 같이 수정됩니다.

📦 3. 참조로 인수 전달 (Pass-by-Reference) [C++ 전용]

  • 사용 위치: 함수 매개변수
  • 예시:
    void update(int& x) {
        x += 10;
    }
    
  • 설명: 함수가 인수를 복사하지 않고 원본을 직접 수정할 수 있게 합니다.

🔍 4. 비트 AND 연산자 (Bitwise AND Operator)

  • 사용 위치: 두 피연산자 사이
  • 예시: int result = a & b;
  • 설명: 두 정수의 각 비트를 AND 연산합니다. 예: 5 & 3 → 101 & 011 → 001 → 결과는 1

🧪 5. 주소 비교

  • 예시:
    if (&x == &y) {
        // x와 y가 같은 메모리 주소를 참조
    }
    
  • 설명: 두 변수의 주소가 같은지 비교할 수 있습니다.

🧵 6. 연산자 오버로딩에서의 참조 반환

  • 예시:
    class MyClass {
        int value;
    public:
        int& getValue() { return value; }
    };
    
  • 설명: 참조를 반환하면 원본 데이터를 직접 수정할 수 있습니다.

💡 보너스 팁

  • C에서는 참조가 없고 포인터만 존재합니다. &는 주소를 가져오는 용도로만 사용됩니다.
  • C++에서는 참조 기능이 추가되어 &의 의미가 확장되었습니다.

필요하다면 각 용도에 대해 더 깊은 예제나 설명도 도와드릴 수 있어요. 어떤 부분이 가장 궁금하신가요?

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