Chapter. 5

김동현·2022년 10월 11일
0
post-thumbnail

매개변수와 반환값이 없을 때 빈 공간은 void를 적어준다!!!
 

배열의 선언과 사용

#include <stdio.h>

int main(void)
{
    int ary[5];                    // int형 요소 5개의 배열 선언
                                   // ary는 array의 축약어
    ary[0] = 10;                   // 첫 번째 배열 요소에 10 대입
    ary[1] = 20;                   // 두 번째 배열 요소에 20 대입
    ary[2] = ary[0] + ary[1];      // 첫 번째와 두 번째 요소를 더해 세 번째 요소에 저장
    scanf("%d", &ary[3]);          // 키보드로 입력받아 네 번째 요소에 저장

    printf("%d\n", ary[2]);        // 세 번째 배열 요소 출력
    printf("%d\n", ary[3]); 
    printf("%d\n", ary[4]);        // 마지막 배열 요소는 쓰레기 값

    return 0;
}

ary[0]에는 10이 들어가고, ary[1]에는 20이 들어간다. 식에 따라 ary[2]는 30이 된다.

내가 여기서 놓친 부분은 ary[3]의 값이 도대체 어디서 나온걸까? 였다.

ary[3]의 경우는 내가 입력하는 값이라는 것을 알게되었고,

ary[4]의 경우는 값을 지정해주지 않았기에 쓰레기 값이 된다는 사실을 배울 수 있었다.

교재에는 ary[4]의 쓰레기 값이 -858993460이라고 나와있지만, 내가 실행한 경우 1이라는 값이 도출되었다.

  • 배열을 사용하지 않고, int형 변수를 하나씩 각각 사용하는 경우 각 변수는 독립적인 저장공간을 갖고 각각의 이름을 갖는다. 반면 배열은 저장 공간이 연속적으로 배열되고, 하나의 배열명이 전체 공간의 이름이 된다.

  • int ary[5]의 경우에는 총 5개의 배열 요소가 존재한다는 사실을 알 수 있다.

    • ary[0]=10의 경우 첫번째 배열 요소에 해당한다는 사실을 알 수 있다.
    • ary[0], ary[1], ary[2], ary[3]. ary[4] 이렇게 5개의 배열요소가 존재하는 것이다.
  • ary[0] 이 첫번째 배열요소라는 것을 꼭 기억해야 한다!
     

배열 초기화

배열을 초기화하지 않으면 쓰레기 값이 만들어진다. 선언과 동시에 {}로 묶어서 초기화한다.

배열의 초기화는 선언 시 최초 한번만 가능하다. 그 이후에는 배열 요소에 일일이 값을 대입해야 한다.

<배열의 초기화 방법>

  1. 가장 기본적인 초기화 방법이다.
    • int ary1[5] = {1, 2, 3, 4, 5};
  2. 초깃값이 배열 요소의 개수보다 적은 경우
    • int ary2[5] = {1, 2, 3};
  3. 자동 초기화 기능을 사용하여 모든 요소를 0으로 초기화 한다.
    • int ary2[1000] = {0};
  4. 배열 요소의 개수가 생략된 형태
    • int ary3[] = (1, 2, 3};
  5. double형 배열과 char형 배열을 선언하고 초기화한다.
    • double ary4[5] = {1.0, 2.1, 3.2, 4.3, 5.4};
    • char ary5[5] = {’a’, ‘p’, ‘p’, ‘l’, ‘e’};

  

배열과 반복문

#include <stdio.h>

int main(void)
{
    int score[5];                     // 다섯 과목의 성적을 입력할 int형 배열 선언
    int i;                            // 반복 제어 변수
    int total = 0;                    // 총점을 누적할 변수
    double avg;                       // 평균을 저장할 변수
 
    for (i = 0; i < 5; i++)           // i가 0부터 4까지 5번 반복
    {
        scanf("%d", &score[i]);        // 각 배열 요소에 성적 입력
    }

    for (i = 0; i < 5; i++)        
    {
        total += score[i];            // 성적을 누적하여 총점 계산
    }
    avg = total / 5.0;                 // 평균 계산

    for (i = 0; i < 5; i++)
    {
        printf("%5d", score[i]);       // 성적 출력
    }
    printf("\n");

    printf("평균 : %.1lf\n", avg);       // 평균 출력

    return 0;
}

main 함수를 하나의 큰 뼈대로 생각하고 for문을 기준으로 바라볼 필요가 있다고 생각한다.


배열을 선언하면 많은 변수를 한 번에 선언하는 효과를 볼 수 있다.

배열을 초기화할 때는 중괄호 {} 를 사용한다.

배열은 주로 반복문으로 처리한다.

배열 전체의 크기를 구할 때 sizeof 연산자를 사용한다.

profile
디자인과 개발을 모두 할줄 아는 능력있는 개발자가 되고싶습니다.

0개의 댓글