본문 바로가기

C++

[C++] 포인터 vs 배열

배열명은 배열의 시작번지를 나타내는 포인터 상수이다.

 

pi 포인터 변수와 ar 배열이 있을 때

int *pi = &ar[0] = ar 로 표현할 수 있다.

 

포인터도 배열처럼 []연산자를 사용할 수 있다.

 

ptr 임의의 배열을 가리키는 포인터이고 n 정수일 

ptr[n] = *(ptr+n) 이다.

 

그래서 포인터를 배열처럼 사용할 수도 있다.

포인터와 배열의 차이점은 다음과 같다.

 

① 포인터는 다른 대상을 가리킬 수 있는 변수이고 배열은 상수이다.

② 포인터가 가리키는 배열의 크기는 동적으로 결정할 수 있지만 배열의 크기는 정적이다.

③ 배열의 크기는 무궁무진하지만 포인터의 크기는 4바이트이므로 함수로 배열을 전달할 때는 포인터를 이용해야한다.

④ 배열의 요소를 읽는 것은 시작번지+n으로 순차적으로 가지만 포인터는 요소의 번지를 통해 

바로 접근할 수 있기 때문에 계산속도가 더 빠르다.

 

 

 

'C++' 카테고리의 다른 글

[C++] 문자형 배열 vs 문자형 포인터  (0) 2022.01.02
[C++] 포인터 배열과 배열 포인터  (0) 2022.01.02
[C++] 다차원배열  (0) 2022.01.02
[C++] 이중 포인터  (0) 2022.01.02
[C++] malloc,calloc,realloc  (0) 2022.01.01