배열 3

배열과 연결리스트

배열과 연결리스트 배열은 - 스택 영역에 자료를 저장하고 컴파일시 공간을 확보하게 됩니다. - 자료를 순차적으로 저장하고 인덱스의 번호로 접근이 가능합니다. + 자료의 접근과 저장이 빠릅니다. - 한번 확보한 배열의 크기를 변경하기가 어려워 메모리가 낭비되고 비효율적일 수 있습니다. - 배열의 내부 요소를 정렬하고자 할 때 연결리스트에 비해 빠릅니다. + 인덱스 번호로 바로 접근해서 요소를 찾아내고 정렬하기 때문입니다. - 내부 데이터의 탐색이나 정렬을 자주한다면 배열을 사용하는 편이 좋습니다. + 접근하기가 연결리스트에 비해 빠르기 때문 (인덱스) 연결리스트는 - 힙 영역에 자료를 저장하고 필요할 때마다 메모리를 확보해 사용합니다. - 매번 데이터를 저장할 때마다 데이터를 위한 메모리를 확보해야 하므로..

배열 (Array)

배열(Array)의 개념 배열은 여러개의 동일한 데이터 타입의 데이터를 한번에 만들 때 사용됩니다. 만일, 6개의 정수를 저장할 공간이 필요한 경우, 배열이 없다면 int a1, a2, a3, a4, a5, a6; 으로 선언해야하지만, 배열이 지원된다면 간단하게 int a[6]; 으로 선언될 수 있습니다. 배열은 인덱스 번호를 기준으로 작업을 할 수 있기 때문에 효율적으로 루프를 설정하여 여러 상황에서 간단한 코드를 이용하여 결과를 나타낼 수 있습니다. - C언어에서는 배열의 인덱스는 0부터 시작 - a[6] = a[0] ~ a[5] 까지 6개 2차원 배열 2차원 배열은 1차원 배열이 여러개 모여서 이루어집니다. 2차원 배열에서 가로줄은 행, 세로줄을 열이라고 합니다. int a[3][4]; a[0][0..

C 배열과 포인터

배열과 포인터 배열과 포인터는 유사한점이 있습니다. - 차이점이 있다는 이야기겠죠? 그럼 보다 자세하게 알아보겠습니다. char a[4]; 위의 선언문은 a라는 이름으로 4개의 char형(정수형 1byte) 데이터를 저장할 수 있는 기억공간을 만들어라 라는 것입니다. - 각각의 공간에 a[0], a[1], a[2], a[3]의 기억공간이 만들어집니다. (다 아시죠?)더 정확하게 말씀드리자면  1. a라는 이름의 주소번지를 담을 수 있는 공간이 만들어짐2. 메모리 내 빈 공간을 찾아 char 형의 데이터를 저장할 수 있는 연속된 4개의 공간 확보3. 연속된 4개의 기억장소의 첫번째 주소번지를 이전에 만들어 놓았던 a라는 기억장소에 저장 위 내용 중 1번은 완전히 포인터 선언을 이야기하고 있죠?유사합니다, ..