배열에는 배열 요소와 배열 인덱스 구조로 이루어져 있다.

일반적으로 변수는 집 주소가 하나인 단독주택과 같이, 메모리에 올라가는 주소가 하나로 할당되게 된다.
배열은 여러 개의 집이 모여서 구성된 아파트와 같다. 메모리에 올라가는 주소가 type의 크기만큼 연속하여 할당되게 된다.

#define MAX_DEGREE 101 //다항식의 최대 차수 + 1
typedef struct {
int degree;
float coef[MAX_DEGREE]
}polynomial;
polynomial a = {5, {10, 0, 0, 0, 6, 3} };
#define MAX_TERMS 101
typedef struct {
float coef;
int expon;
}polynomial;
polynomial terms[MAX_TERMS]={ {8,3}, {7,1}, {1,0}, {10,3}, {3,2}, {1,0} };
int As = 0, Ae = 2; //배열에서 다항식 A의 시작과 끝에 대한 인덱스 정보
int Bs = 3, Be = 5; //배열에서 다항식 B의 시작과 끝에 대한 인덱스 정보
int avail = 6; //배열에서 비어 있는 인덱스
배열을 이용하여 행렬을 표현하는 두 가지 방법이 있다.
A = [2 3 0] B = [0 0 0 7 0 0]
[8 9 1] [9 0 0 0 0 8]
[7 0 5] [0 0 0 0 0 0]
[6 5 0 0 0 0]
[0 0 0 0 0 1]
[0 0 2 0 0 0]
B = [0 0 0 7 0 0] B = [0 3 7]
[9 0 0 0 0 8] [1 0 9]
[0 0 0 0 0 0] -> [1 5 8]
[6 5 0 0 0 0] [3 0 6]
[0 0 0 0 0 1] [3 1 5]
[0 0 2 0 0 0] [4 5 1]
[5 2 3]