본문 바로가기
백엔드/C 언어

C 언어 포인터 개념

by _silver 2025. 4. 16.
기호/표현 의미 예시 값
n 변수의 값 10
&n 변수 n의 주소 예: 0x100
p 포인터 변수 자체(주소 저장 변수) &n == 예: 0x100
*p 포인터 p가 가리키는 값 10
*&p p를 역참조한 후 다시 참조 -> 원래 p 값 p == 예: 0x100 
*(&n) n의 주소를 역참조한 것 -> n의 값 10
*ptr ptr이 가리키는 위치의 값 [예제 코드 참고] 예: 0x100
*&ptr ptr를 역참조하고 다시 참조한 것 → 원래 ptr [예제 코드 참고] 예: 0x100

 

☑️ 예제 코드 - 포인터 기본 개념 정리
더보기
#include <stdio.h>

int main(void) {
    int x = 10;          // 변수 x 선언, 값은 10
    int* ptr = &x;       // 포인터 ptr에 x의 주소를 저장

    printf("1. x의 값: %d\n", x);           // 10
    printf("2. &x (x의 주소): %p\n", &x);   // 예: 0x100
    printf("3. ptr (저장된 주소): %p\n", ptr); // &x와 같음
    printf("4. *ptr (가리키는 값): %d\n", *ptr); // 10
    printf("5. *&x: %d\n", *&x);           // 10 (x의 주소를 역참조한 것)
    printf("6. *&ptr: %p\n", *&ptr);       // ptr의 값 (x의 주소)
    
    return 0;
}

 

✅ 출력 예시

1. x의 값: 10
2. &x (x의 주소): 0x100
3. ptr (저장된 주소): 0x100
4. *ptr (가리키는 값): 10
5. *&x: 10
6. *&ptr: 0x100