매개변수와 반환값이 없을 때 빈 공간은 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] 이 첫번째 배열요소라는 것을 꼭 기억해야 한다!
배열을 초기화하지 않으면 쓰레기 값이 만들어진다. 선언과 동시에 {}로 묶어서 초기화한다.
배열의 초기화는 선언 시 최초 한번만 가능하다. 그 이후에는 배열 요소에 일일이 값을 대입해야 한다.
<배열의 초기화 방법>
#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 연산자를 사용한다.