티스토리 뷰

2021.02.15.월
배열의 선언
자료형 배열명[크기];
✔ 배열은 데이터를 연속적으로 저장하고 사용할 수 있는 방법이다.
✔ 어떤 데이터를 연속적으로 저장할 지, 그리고 몇 개의 데이터를 저장할 지를 배열 선언 시에 설정한다.
int arr[5];
✔ 위의 코드는 int형 값을 5개 저장할 수 있는 배열 arr를 선언하겠다는 의미이다.
배열의 선언과 초기화
//선언과 초기화를 함께
int arrA[5] = { 1, 2, 3, 4, 5 }
//선언과 초기화를 분리
int arrB[5];
arrB[0] = 1;
arrB[1] = 2;
arrB[2] = 3;
arrB[3] = 4;
arrB[4] = 5;
✔ 변수와 마찬가디로 배열도 선언과 초기화를 함께할수도, 분리해서 따로 할 수 도 있다.
✔ 다만, 중괄호를{ } 사용한 초기화는, 선언과 함께할 때만 사용할 수 있으며, 이미 선언된 배열에는 사용할 수 없음을 알 수 있다.
✔ 선언과 초기화를 분리해 따로 진행한다면, 위와 같이 배열의 index를 하나하나 선택해 값을 저장해야한다.
✔ 배열에 할당된 공간은 0부터 세기 시작하므로 배열에 저장된 첫번째 값은 index 0에 저장한다.
int arr[] = { 1, 2, 3, 4, 5 };
✔ 선언과 초기화를 함께 하는 경우 배열의 크기를 생략할 수 있으나, 초기화를 하지 않는다면 생략할 수 없다.
int arr[10] = { 0, };
✔ 배열 선언 시에 { 0, } 을 할당하면 한번에 0으로 배열의 요소를 초기화할 수 있다.
배열과 반복문
#include <stdio.h>
int main(void){
int arr[5];
//입력값으로 배열 초기화
for(int i=0; i<5; i++){
scanf("%d",&arr[i]);
}
//출력
for(int i=0; i<5; i++){
printf("%d",arr[i]);
}
return 0;
}
✔ 선언과 동시에 중괄호를 사용해 값을 초기화하지 않으면 결국 변수에 값을 하나하나 초기화하는 것과 다르지 않다.
✔ 배열은 반복문을 사용해서 손 쉽게 값을 입력받거나 변경할 수 있다.
✔ 위의 코드에서 arr 배열은 공간이 5개 할당되며, 배열 내부의 공간은 각각 0부터 4까지의 index를 가진다.
✔ for문의 변수 i는 증감식을 통해 0부터 시작하여 1씩 증가하므로, arr[i] 에 값을 순서대로 초기화할 수 있다.
sizeof ()함수의 활용
include <stdio.h>
int main(void){
int arr[5];
//배열에 할당된 크기 추정
int count = sizeof(arr)/sizeof(arr[0]);
//입력값으로 배열 초기화
for(int i=0; i<count; i++){
scanf("%d", &arr[i]);
}
//출력
for(int i=0; i<count; i++){
printf("%d", arr[i]);
}
return 0;
}
✔ for문의 반복 주기를 정하는 조건문을 직접 입력할 수 도 있지만, sizeof() 함수를 활용할 수도 있다.
✔ 먼저 sizeof(배열명) 을 사용해 배열의 크기를 구한다.
✔ 여기서 배열의 크기는 int가 5개 할당되었으니, 4byte가 5개 있으므로 총 20byte이다.
✔ 그리고 sizeof(배열명[0]) 을 사용해, 배열에 저장된 요소의 크기를 구한다. 저장된 값은 int 하나이므로, 요소의 크기는 4byte.
✔ 결국 변수 size에 저장되는 값은 20byte / 4byte, 즉 5이므로 배열에 할당된 크기와 같다.
[참고] 한빛미디어-혼자 공부하는 C언어 유튜브 강의 / 엘리스 트랙-혼자 공부하는 C언어 / 길벗-C언어 코딩도장 / 위키백과
'BackEnd > C' 카테고리의 다른 글
[7일차] 2. 문자열 관련 함수 정리 (0) | 2021.02.17 |
---|---|
[7일차] 1. 문자열(char형 배열) (0) | 2021.02.16 |
[6일차] 1. 재귀 호출 함수 (0) | 2021.02.15 |
[5일차] 숙제 - 코드업 1562. (0) | 2021.02.14 |
[5일차] 2. 함수 (0) | 2021.02.14 |