-
3.1 배열자료구조(C)/배열,구조체,포인터 2020. 7. 9. 17:34
배열(array)의 개념
동일한 타입의 데이터를 한 번에 여러 개 만들 때 사용된다.
"연속적인 메모리 공간"이 할당되고 index 번호를 사용하여 쉽게 접근이 가능하다.
-> 렌덤 억세스: 기억 장치에서 자료를 읽거나 쓸 때 기억 장소에 관계없이 동일한 접근 시간이 걸리는 접근 방식. 즉, 기억 장치에 저장된 자료를 차례대로 접근하지 않고 거의 동일한 시간 내에 임의의 장소를 찾아 접근할 수 있는 방식이다.
ex) int list[6];
배열 ADT
array
객체: <인덱스, 값> 쌍의 집합
연산:
- create(size) ::= size개의 요소를 저장할 수 있는 배열 생성
- get(A, i) ::= 배열 A의 i번째 요소 반환.
- set(A, i, v) ::= 배열 A의 i번째 위치에 값 v 저장.
c에서는 기본으로 구현되있어서 구현 필요 x
c에서의 1차원 배열
n만큼의 배열의 크기를 정하여, 0~n-1만큼의 변수를 만든다.
ex)
int list[6]; -> create(size)
list배열의 요소는 총 6개가 있다.
list[0] = 100; -> set연산
list[0] = value-> get연산
c에서의 2차원 배열
가로줄을 행(row), 세로줄을 열(column)이라고 한다.
ex) int list[3][5];
list[0][0] list[0][1] list[0][2] list[0][3] list[0][4] list[1][0] list[1][1] list[1][2] list[1][3] list[1][4] list[2][0] list[2][1] list[2][2] list[2][3] list[2][4] c에서의 3차원 배열
크기가 n만큼의 1차원 배열을 만들고, 이 배열의 요소에 x,y 만큼의 행과 열을 가진 2차원 배열을 생성하여 추가한다.
출처: https://kimsg12.tistory.com/entry/임의-접근-random-access-任意接近 [정리노트] ->렌덤 억세스 설명 부분
'자료구조(C) > 배열,구조체,포인터' 카테고리의 다른 글
3.4 구조체와 포인터 (0) 2020.07.17 3.3 동적 메모리 할당 (0) 2020.07.17 3.2 포인터 (0) 2020.07.13