본문 바로가기
프로그래밍 언어/C

C 언어 - 포인터(pointer)

by lai-kit 2022. 7. 31.
728x90
반응형

■ 포인터(pointer) 개념

C 언어에서 포인터는 '주소'입니다. 더 자세하게는 주소 값을 저장하는 변수이고 저장한 주소 값을 가리키는 형식입니다. 포인터 변수의 저장공간은 메모리(주기억장치)에 직접 접근합니다.(단위: Byte)

 

 

■ 포인터(pointer) 연산자

  • 번지 연산자(&): 실제 주소를 구해주는 연산자
  • 간접 연산자(*): 어떤 주소에 있는 변수를 구해주는 연산자

 

 

■ 포인터(pointer) 사용 이유

컴퓨터에서는 소스 프로그램의 내용들 모두를 주소로 변환되어 처리되기 때문에 명칭이 아닌 주소를 직접 사용하면 훨씬 더 효율적인 프로그램을 사용할 수 있습니다. 하지만, 소스 프로그램 상에 주소를 직접 사용할 수 없기 때문에 주소를 저장해주는 포인터를 사용합니다.(프로그램의 길이와 실행 시간 단축) 그리고, 포인터는 동적 메모리 관리를 지원합니다.

 

 

■ 포인터(pointer) 예시
%u : 부호 없는 정수형
%X : 16진수
#include <stdio.h>
int main()
{
    int a=10;
    int *ptr;
    printf("변수 a에 저장된 값, 메모리주소는 %d, %X, %u 입니다.\n",&a, &a, &a);
    printf("pointer의 메모리주소는 %X, %u 입니다.\n",&ptr, &ptr);

    ptr = &a; //a의 주소를 ptr에 저장
    printf("ptr = %u\n", ptr); //a의 주소 출력
    printf("*ptr = %d \n", *ptr); //a의 실제값 출력

    *ptr = *ptr + 10; //*ptr은 a의 변수이므로 a = a+10 과 같음
    printf("*ptr=%d\n",*ptr); //20 출력

    return 0;
}

포인터 예시 출력
포인터 예시 출력
위 결과를 바탕으로 int a의 실제값 주소 그림으로 표현
포인터 연산자 설명
포인터 연산자 설명

 

 

수고하셨습니다.

 

728x90
반응형

'프로그래밍 언어 > C' 카테고리의 다른 글

C 언어 - 다차원 배열  (0) 2022.07.23
C 언어 - 배열  (0) 2022.07.17
C 언어 - 반복문 do - while 문  (0) 2022.07.16
C 언어 - 반복문 while 문  (0) 2022.07.16
C 언어 - 반복문 for 문 중첩  (0) 2022.07.16


댓글