[자료구조]CH2. 자료구조 구현을 위한 C프로그래밍 기법(배열)
참조 : C로 배우는 쉬운 자료구조 (이지영 저)
공부날짜 : 2021.01.13
<Section1> 배열
1. 배열의 개념
배열(Array)은 자료형이 겉은 자료를 나열하여 메모리에 연속으로 저장하여 만든 자료 그룹이다.
배열 요소를 구별하기 위해서 사용하는 번호는 인덱스라고 하고 인덱스는 항상 0부터 시작한다.
특정 배열 요수를 사용할 경우는 '배열이름[배열 요소의 인덱스]'로 지정하여 변수처럼 사용한다.
2. 1차원 배열
2.1 1차원 배열의 선언
자료형 배열이름 [배열요수의 개수];
2.2 1차원 배열의 초기화
자료형 배열이름[배열크기] = {초깃값 리스트};
배열에 초깃값을 주어도 되고 배열요소 각각에 초깃값을 주는 방법도 있다.
만약 배열 크기보다 초깃값을 적게 지정하면, 배열 요소에 차례대로 초깃값이 할당되고 나머지에는 0이 할당된다.
반대로 배열 크기보다 초깃값이 많은 경우는 배열 크기 만큼만 초깃값이 할당되고 나머지는 사용할 수 없다.
2.3 문자 배열
문자열을 저장하는 경우는 문자열을 구성하는 문자를 연속으로 저장하므로 배열을 사용한다. 이때 배열의 자료형이
문자 자료형(char)이 된다.
*문자 배열을 문자열로 초기화 하는 예 : char s1[10]="String";
*문자 배열을 초깃값 문자 리스트로 초기화 하는 예 : char s2[10]={'S','t','r','i','n','g','\0');
문자열이 저장될 때는 문자열의 끝을 나타내는 null값이 마지막에 추가되기 때문에 실제보다 1바이트가 크다.
그러므로 문자 리스트로 초기화하는 경우는 직접 null값을 마지막에 초기화해주어야 한다.
[예제2-4] 문자 배열에 문자열을 저장하고 출력하기
#include <stdio.h>
void main()
{
char[20]="Data Structure!";
int i;
printf("\n문자 배열 str[] : ");
for(i=0;str[i];i++) //null값 뒤에 부터는 0이 나오므로 논리값이 False가 되면서 반복문 탈출!
{
printf("%c",str[i]);
}
gerchar();
}
3. 다차원 배열
3.1 다차원 배열의 선언
*2차원 배열 : 자료형 배열이름[배열크기][배열크기];
행 개수 열 개수
*3차원 배열 : 자료형 배열이름[배열크기][배열크기][배열크기];
면 개수 행 개수 열 개수
3.2 다차원 배열의 초기화
순서대로!
*예1 : int i[2][3] = {{1,2,3},{4,5,6}};
*예2 : int i[2][3] = {1,2,3,4,5,6};
3.3 문자 다차원 배열
*초기화의 예 : char c[3][20]={"Hong Gil Dong",
"Computer Department",
"Seoul Korea"};
*strcpy()를 사용하는 예 : strcpy(c[0],"Hong Gil Dong");
strcpy(c[1],"Computer Department");
strcpy(c[2],"Seoul Korea"};