포인터 변수의 선언과 초기화

기본 문법

1
2
3
4
자료형 *변수명 = 주소값;

int num = 20;
int *p = #
  • 자료형 : C 언어의 기본 자료형, 열거형, 구조체형, 공용체형, 포인터형 등
  • 변수명 : 명칭 정의 규칙에 따라 만든 이름
  • * : 포인터 연산자
  • & : 주소 연산자

선언 후 초기화

  • 포인터 변수를 선언한 뒤 주소값을 나중에 저장할 수 있다.
  • 이 경우엔 포인터 변수에 포인터 연산자를 사용하지는 않는다.
1
2
3
int a = 5000;
int *p; 
p = &a;  // 나중에 저장

포인터 변수의 선언 variation

1
2
3
자료형 *포인터변수명;   // 가장 많이 사용되는 방식
자료형* 포인터변수명;
자료형 * 포인터변수명;

포인터 변수가 담는 값

  • 포인터 변수는 메모리의 주소값을 저장한다.
  • 포인터 변수를 출력하면 어떤 메모리의 주소값(16진수)를 출력한다.
1
2
3
4
5
6
void pointer_variable() {
    int num = 20;
    int *p = #
    printf("p : %p", p);
}
// 출력 : p : 0x12dcf624c

일반 변수와 포인터 변수의 차이

구분 일반 변수 포인터 변수
저장되는 값 실제 자료의 값 자료가 저장된 메모리의 주소
자료 접근 방식 변수명으로 메모리에 접근
이를 통해 자료를 저장하거나 읽음
포인터에 저장된 주소를 통해 메모리에 간접 접근
간접 접근하여 자료를 저장하거나 읽음

Reference

C 프로그래밍 (김형근, 곽덕훈, 정재화 공저)
C 프로그래밍 강의 (방송통신대 - 이병래)

Comments