자문자답 공부

포인터 / 배열

Roka_is_back 2024. 2. 26.

질문에 내가 대답한다 생각한 내용.

배열: 연속된 메모리 공간

포인터: 주소로 참조하는 형식, 즉 연속적이지 못하다.

 

배열의 경우 캐시 적중률이 좋은데, 이는 캐시의 특성 덕분이다.

캐시는 시간 지역성과 공간 지역성을 갖는데, 

시간 지역성은 최근 읽은 메모리를 다시 읽을 가능성이 높다는 것이다.

공간 지역성은 최근 읽은 메모리 주변의 메모리를 읽을 가능성이 높다는 것이다.

공간 지역성의 특징의 경우 캐시라인 단위로 캐시에 올리기 때문에 그런 것 같다.

 

또 크기의 차이도 있는데,

포인터의 크기는 32bit  = 4byte , 64bit = 8byte 이고, 

배열의 크기는 자료형 * 갯수만큼이다.

 

조사 내용

1. 포인터는 변수이고 배열은 상수이다.

포인터는 메모리 주소를 변경할 수 있지만 배열은 주소를 변경할 수 없다.

2.포인터 배열의 크기는 동적으로 결정할 수 있지만 배열은 선언에 의해 이루어지므로 정적이다.

3.포인터는 자료의 갯수와 무관하게 4(또는 8)byte이다.

4.포인터는 지원되지만 배열은 지원안되는 연산자들이 있다.(ex ++)

 

 

'자문자답 공부' 카테고리의 다른 글

Malloc , New 차이  (0) 2024.03.10
Static / 전역변수 / BSS  (1) 2024.02.28
Struct와 Class 의 차이  (0) 2024.02.23
Virtual 키워드  (0) 2024.02.21
[DirectX11] 공전, 자전, 부모 Mat  (2) 2024.01.02

댓글