쉽게 이해하기
포인터 p를 택배 배송지, *p를 그 배송지의 물건이라고 생각해 보세요. p = &b는 배송지를 b로 바꾸는 일입니다. *p = 10은 현재 배송지의 물건을 10으로 바꾸는 일입니다. 두 동작을 구분하는 것이 포인터 문제의 핵심입니다.
눈으로 따라가기
설명용 가상 주소입니다. 실제 주소와 int 크기는 환경마다 다릅니다.
| 이름 | 주소 (가상) | 저장된 값 |
|---|---|---|
| x | 1000 | 7 |
| p | 2000 | 1000 (x의 주소) |
p에 저장된 1000→x의 위치 → *p는 7
&x는 주소, *p는 그 주소의 값입니다. *p=9이면 x의 값이 9로 바뀝니다.
p → a에서 p → b로 이동하면 이후 *p는 b를 뜻합니다.
#include <stdio.h>
int main(void) {
int a=3, b=8;
int *p=&a;
*p+=2;
p=&b;
*p+=3;
printf("%d %d",a,b);
return 0;
}시험 함정
초기화되지 않은 포인터나 null을 역참조하지 않습니다.
함께 보는 관련 주제
비슷한 개념의 핵심과 함정을 이 페이지에서 비교합니다.
즉시 문제 · 5개
정답을 제출하면 해설과 관련 개념을 확인합니다. 틀린 문제는 자동으로 오답노트에 저장됩니다.
즉시 3문제관련 문제 전체검증 근거
기술 문서/실행 검증 · 마지막 검증 2026-09-27 · 핵심 코드 추적 유형 · 공식 출제 횟수 집계 없음