1. [C 언어] 배열
ㅇ 데이터형이 모두 동일한 원소들의 집합 (자료구조)
2. [C 언어] 배열의 특징
ㅇ 저장방식 : 원소들이 메모리에 연속으로 저장됨
ㅇ 접근방식 : 정수 인덱스를 사용하여 각 원소에 접근
ㅇ 데이터형 : 배열 내 모든 원소들이 같은 데이터형 만 가능
ㅇ 인덱스 : 0부터 시작하고, size-1까지, 정수이어야 함
ㅇ 배열 크기 : 0 보다 커야하고, 정수이어야 함
ㅇ 다차원 배열 : 배열 안에 배열을 보관 처리 가능
ㅇ 포인터와의 관계 : 포인터와 밀접한 관계임
- 사실상, 배열 표기는 포인터의 다른 표현에 불과한 것으로 봄
3. [C 언어] 배열의 선언
ㅇ 배열의 선언 이란?
- 배열의 명칭(name), 원소 갯수(size), 원소 데이터형(type)을 컴파일러에게 알려주는 것
. type name[size]; => 例) int array[6];
ㅇ 일단, 프로그램 시작 후에는, 배열 크기 변경 못함
- int n=5; int array[n]; // 컴파일 에러 발생
ㅇ 배열 원소의 디폴트값 : 숫자 0
ㅇ 배열 원소 및 주소 간의 관계
- array[i] ↔ base + i*sizeof(int)
ㅇ 2 차원 배열의 선언 例) int array[3][5];
4. [C 언어] 배열의 초기화
ㅇ 콤마(,)로 분리된 값들의 리스트를 중괄호({})로 감쌈
- (형식) type name[size] = {value1,value2,...};
. size 생략하고 빈 괄호 []를 쓰면, 컴파일러가 알아서 개수를 세어 배열 크기를 정함
ㅇ 다 차원 배열 초기화 例) int x[2][3] = {{1,2,3},{4,5,6}};
ㅇ 지정 초기화자 (designated initializer) (C99 이후)
- 例) int array[6] = {[5] = 28}; // array[5]를 28로 초기화
ㅇ 배열 요소를 모두 영(0)으로 초기화하는 例) int x[2] = {0,};
5. [C 언어] 배열의 연산
ㅇ 값 대입하기 (set 연산) : 例) array[0] = value;
- 배열 각 원소에 인덱스를 사용하여 값 대입
* 허용 안되는 사례
. 배열 대 배열로 통째로 대입 안됨
. 배열 초기화 이외에는 중괄호로 묶는 값 리스트 형식의 대입이 허용 안됨
ㅇ 값 가져오기 (get 연산) : 例) value = array[0];
ㅇ 배열 크기 : sizeof(배열명)/sizeof(배열 자료형)
- 例) sizeof(arr_name)/sizeof(int);