본문 바로가기
개발/C++

11장 포인터와 동적 메모리 관리(전)

by 민돌이2 2019. 5. 8.

한성대학교 김설현교수님 강의내용을 바탕으로 작성함

 

포인터의 기본사항

일반적인 변수는 데이터 값(정수, 실수 값, 문자 등)을 저장하지만, 포인터는 데이터값이 저장된 변수의 메모리 주소를 저장

int count =5; //변수 int *pCount = &count; //포인터

int 4byte, short 2btye, char 1byte지만 포인터는 변수조율에 상관없이 4byte할당

 

선언된 다음에는 간접참조 연사자(*)를 통해 포인터 변수가 가리키는 값에 접근 가능

count++; (*pCount)++;

 

포인터와 const의 사용

const키워드를 사용하여 상수를 선언할 수 있고, 일단 상수로 선언하면 변경할 수 없기에 선언과 동시에 초기화 해야한다.

double radius = 5; double * const pValue = &radius; //선언과 동시에 초기화 const double * pValue = &radius; // 포인터가 상수가 아니라 데이터가 상수가 된다.

 

배열과 포인터

배열이름은 배열의 시작 주소를 나타낸다. 아래와 같이 선언했을 떄, list는 시작주소는 &list[0]이다.

int list[6] = {11, 12, 13, 14, 15, 16};

list+1은 list+sizeof(int)가 된다.

 

 

 



포인터 인수 전달
함수에서  배열 매개변수는 항상 포인터 매개변수를 사용하는 것으로 대체될 수 있다.
void m (int list[] , int size) void m (int* list, int size)

둘 다 list는 배열의 시작주소 

728x90

'개발 > C++' 카테고리의 다른 글

14장 연산자 오버로딩  (0) 2021.12.09
13장 파일 입력과 출력  (0) 2019.05.21
12장 템플릿, 벡터, 스택  (0) 2019.05.13
11장 포인터와 동적 메모리 관리(후)  (0) 2019.05.09
10장 객체 지향 개념  (0) 2019.02.11
9장 객체와 클래스  (0) 2019.01.19
8장 다차원 배열  (0) 2019.01.16
7장 1차원 배열  (0) 2019.01.15

댓글