배열의 선언
배열 또한 다른 자료형처럼 선언을 통해서 저장 공간을 확보하고 한 번에 변수를 여러 개 선언한다
int형 변수 5개를 하나씩 선언하는 것의 크기 = 전체 저장 공간의 크기
==> 변수는 각각의 공간에 이름을 지칭한다
==> 배열은 메모리에 연속된 공간이 할당되며, 하나의 이름을 사용한다
==> 배열은 각 저장 공간을 이름과 첨자로 구분하고 첨자는 0부터 시작한다
배열의 사용
==> 배열을 선언할 때 대괄호 ([])는 전체 개수를 의미
==> 배열 요소를 사용할 때 대괄호 ([])는 각 요소가 배열에서 몇 번째에 있는지를 의미
*배열의 첨자가 사용 범위를 벗어난다면
- 컴파일러가 경고 메세지를 알려주기도 하지만 에러 메세지를 표시하지 않을수도 있어서 버그를 잡기가 쉽지 않아진다
- 처음부터 사용할 때 범위를 넘어서지 않게 주의해야 한다!
배열 초기화
배열도 변수와 마찬가지로 최초 할당된 저장 공간에는 쓰레기 값이 저장되어 있으므로 선언과 동시에 초기화를 해야한다
초기화 1
int ary[5] = {1,2,3,4,5};
==> 초깃값은 첫 번째 요소부터 차례로 초기화된다
초기화 2
int ary2[5] = {1,2,3};
==> 초깃값이 배열 요소의 개수보다 적은 경우이다
초기화 3
int ary2[1000] = {0};
==> 자동 초기화 기능을 사용하면 배열 요소 개수가 아무리 많아도 모든 요소를 쉽게 0으로 초기화 할 수 있다
초기화 4
int ary3 = {1,2,3};
==> 배열 요소 개수가 생략된 형태도 있다 ( 컴파일러는 초깃값 개수만큼 배열 요소 개수를 정하고 저장 공간을 할당 )
초기화 5
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 i;
int total = 0;
double avg;
for (i = 0; i < 5; i++)
{
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;
}
sizeof 연산자를 활용한 배열 처리
sizeof(배열명) / sizeof(배열 요소)
배열 요소의 개수가 바뀌면 배열을 처리하는 반복문을 모두 수정해야 하는 부담이 있는데 sizeof 연산자를 활용하면 일일이 해주지 않아도 자동으로 바뀌게 된다
#include <stdio.h>
int main(void)
{
int score[5];
int i;
int total = 0;
double avg;
int count;
count = sizeof(score) / sizeof(score[0]); // sizeof 연산자를 활용하기
for (i = 0; i < 5; i++)
{
scanf("%d", &score[i]);
}
for (i = 0; i < 5; i++)
{
total += score[i];
}
avg = total / (double)count;
for (i = 0; i < 5; i++)
{
printf("%5d", score[i]);
}
printf("\n");
printf("평균 : %.1lf\n", avg);
return 0;
}
'C 언어 > [책 정리] 혼자 공부하는 C언어' 카테고리의 다른 글
포인터의 기본 개념 (1) (0) | 2022.12.20 |
---|---|
문자를 저장하는 배열 (0) | 2022.12.12 |
여러 가지 함수 유형 (0) | 2022.12.08 |
함수의 작성과 사용 (0) | 2022.12.08 |
반복문 활용 (0) | 2022.12.07 |