기호/표현 | 의미 | 예시 값 |
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