신규 블로그를 만들었습니다!

2020년 이후부터는 아래 블로그에서 활동합니다.

댓글로 질문 주셔도 확인하기 어려울 수 있습니다.

>> https://bluemiv.tistory.com/

포인터를 잘하면 C언어를 잘 다룬다고 할 수 있을 정도로 어렵기도하고 중요한 부분이기도 하다.

 

1. 포인터란?

포인터는 메모리의 주소를 담은 공간이다. 보통 변수에 값을 저장해 왔지만, 포인터변수의 경우는 변수의 값이 아닌 그 값의 메모리 주소를 담고 있는 변수이다.

 

 

 

 

2. 포인터 변수의 선언 & 초기화

포인터변수를 사용 하기 위해서는 보통 변수를 선언하고 초기화 하듯이 포인터변수도 해줘야 한다.

다만 *를 사용해야만 하는 차이가 존재한다.

 

int* pointer = NULL;

 

포인터를 초기화 할때는 무조건 NULL을 이용해서 해야 한다.

 

 

 

3. 포인터 변수의 사용

& 은 메모리주소를 알고 싶을때 사용하고, * 은 특정한 메모리 주소의 데이터 값을 알고 싶을때 사용한다.

 

#include <stdio.h>
 
int main(void) {
 
    // 일반 변수
    int num = 40;
 
    // 포인터 변수 선언과 초기화
    int* numPointer = NULL;
    
    // num의 주소를 numPointer 포인터변수에 저장
    numPointer = &num; 
 
 
    // 일반 변수 num의 값 출력
    printf("num = %d\n", num);
 
    // num의 주소 값 출력
    printf("&num = %x\n", &num);
    printf("numPointer = %x\n", numPointer);
 
    // numPointer가 가지고 있는 주소의 데이터 값
    printf("*numPointer = %d\n", *numPointer);
 
    // numPointer의 주소
    printf("&numPointer = %x\n", &numPointer);
 
    // numPointer의 주소의 값의 값
    printf("**&numPointer = %d\n", **&numPointer);
 
    return 0;
}
​

 

 

 

 

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기