[KOCW 한국산업기술대학교 박정민 교수님] C 프로그래밍 12강

MinWoo Park·2021년 8월 23일
0

KOCW

목록 보기
12/19
post-thumbnail

Part12 포인터란 무엇인가

12.1 포인터란

  • 주소를 저장하는 변수
  • C언어의 장점 중 하나, 메모리 주소를 참조해서 다양한 자료형 변수들의 접근과 조작 용이
  • 메모리 주소를 참조하여 배열과 같은 연속된 데이터에 접근과 조작 용이
  • 동적 할당된 메모리 영역(힙영역)에 접근과 조작 용이
  • 포인터 변수는 4바이트 크기의 메모리 공간이 할당됨(함수 포인터도 동일)

12.2 포인터 변수의 선언과 사용

int* pointer=NULL;
자로형 포인터 변수 이름 NULL 포인터 설정
  • 자료형: 포인터 변수의 자료형을 지정, 자료형 다음에 * 연산자를 붙임
  • 포인터 변수 이름: 주소를 저장할 변수의 이름을 지정
  • NULL 포인터 설정: 포인터 변수 선언 시 NULL로 초기화

12.3 다차원 포인터 변수의 선언과 사용

  • 2차원 이상의 포인터 변수, 자료형 다음에 차원의 수 만큼 * 연산자를 붙임

ex)

int** p2=NULL; // 2차원
int*** p3=NULL; // 3차원

12.4 주소의 가감산

  • 자료형은 모두 주소를 가지며 주소의 가감산이 가능
  • 각각의 주소를 가감산하면 자료형의 크기에 따라 결과가 다름
  • char형 주소에 +1를 하면 1바이트 증가, int형 주소에 +1을 하면 4바이트 증가, double형 주소에 +1을 하면 8바이트 증가

12.5 함수 포인터

함수 이름은 함수의 시작 주소

  • 함수를 실행하기 위해서는 함수가 있는 메모리 공간의 주소를 알아야 하는데 그것이 함수의 이름

함수 포인터란 함수의 시작 주소를 저장하는 변수

int (*pointer) (int, int)
자로형 함수 포인터 이름 인수 자료형 목록
  • 자료형: 가리키는 대상이 되는 함수의 자료형을 설정
  • 함수 포인터 이름: 함수 포인터의 이름을 설정하며 괄호와 *을 반드시 사용
  • 인수 자료형 목록: 가리키는 대상이 되는 함수의 인수들의 자료형 목록

Reference
강의: 박정민, 『C 프로그래밍』, KOCW 한국산업기술대학교, 12강
교재: 박정민, 『열혈강의 C 언어 본색 명강의가 일으키는 C 언어 기적』, 프리렉 (2011), p327-364.

profile
물음표를 느낌표로 바꾸는 순간을 사랑하는 개발자입니다.

0개의 댓글