배열이란?

배열이란 둘 이상의 변수를 모아 놓은 것이다. 배열의 선언 방식은 다음과 같다.

위에서 볼 수 있듯이 int arr[10]; 이면 자료형이 int, 배열의 이름이 arr, 배열의 길이가 10이라는 것을 말하는 것이다.

1
int arr[10];
cs

위에서 볼 수 있듯이 int arr[10]; 이면 자료형이 int, 배열의 이름이 arr, 배열의 길이가 10이라는 것을 말하는 것이다.

또한 특징이 있는데 배열의 시작은 0부터 시작한다는 것이다. 따라서 위의 길이가 10인 배열의 경우 0번째 원소부터 9번째 원소까지 존재한다.

배열의 가장 큰 장점이 존재하는데 바로 반복문을 이용하여 순차적으로 접근이 가능하다는 점이다. 이것을 예시를 통해 알아보자.

1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
 
int main(void) {
    int arr[5= {010203040 }; // 전부 더하면 100 이다. 
    int sum = 0;
 
    for(int i = 0; i < 5; i++) { // 반복문을 통해 모든 원소들을 더함
        sum += arr[i];
    }
    printf("배열의 모든 원소의 합 : %d", sum);
    return 0;
}
cs

배열의 선언과 동시에 초기화

배열의 초기화의 방법은 총 3가지가 존재한다. 다음을 통해 알아보자.

  1. int arr[5] = {1, 2, 3, 4, 5}; // 차례차례 초기화
  2. int arr1[ ] = {1, 2, 3, 4, 5}; // 컴파일러에 의해서 자동으로 길이 5가 채워진다
  3. int arr3[5] = {1, 2};  // 3, 4, 5 번째 요소는 자동으로 0으로 채워진다.

배열의 길이를 구하는 sizeof() 함수

배열의 길이를 따로 명시하지 않더라도 sizeof 함수를 통해 알 수 있다. 먼저 일반적인 배열 int arr[5] = {1, 2, 3, 4, 5};를 생각해보면 int형이므로 한 요소당 4byte씩 총 20byte이다. 따라서 sizeof(arr);는 20byte이다. 이를 int의 크기 4byte로 나누면 5 즉 배열의 길이를 구할 수 있다. 따라서 배열의 길이는 int len = sizeof(arr) / sizeof(int);로 구할 수 있다. 예시를 보면 다음과 같다.

<소스코드>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
 
int main(void) {
    int arr1[5= {010203040 };  
    double arr2[4= {0.01.02.03.0};
    float arr3[6= {0.01.02.03.04.05.0};
 
    printf("배열 arr1의 크기 : %d\n"sizeof(arr1));
    printf("배열 arr2의 크기 : %d\n"sizeof(arr2));
    printf("배열 arr3의 크기 : %d\n"sizeof(arr3));
 
    int len1 = sizeof(arr1) / sizeof(int); // 배열 1의 길이
    int len2 = sizeof(arr2) / sizeof(double); // 배열 2의 길이
    int len3 = sizeof(arr3) / sizeof(float); // 배열 3의 길이
 
    printf("배열 arr1의 길이 : %d\n", len1);
    printf("배열 arr2의 길이 : %d\n", len2);
    printf("배열 arr3의 길이 : %d\n", len3);
 
    return 0;
}
cs

<실행결과>

 

'C' 카테고리의 다른 글

5. 포인터와 함수  (0) 2021.06.25
4. 포인터와 배열  (0) 2021.06.22
3. 포인터  (0) 2021.06.21
2. 배열을 이용하여 문자열의 표현  (0) 2021.06.21
1-1 배열 예제  (0) 2021.06.21

+ Recent posts