티스토리 뷰

BackEnd/C

[6일차] 2. 배열

JINSUKUKU 2021. 2. 15. 14:20

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
댓글
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
최근에 올라온 글
글 보관함
Total
Today
Yesterday