History

[C언어][배열] 변수와 배열의 초기화 본문

C,C++/개념 실습 프로그래밍

[C언어][배열] 변수와 배열의 초기화

luckybee 2022. 10. 29. 19:18
728x90
반응형

1. 일반 지역 변수의 초기화

 

일반적으로 변수를 초기화를 시키려면 아래 코드처럼 사용할 수 있다.

int data=0; //선언과 동시에 0으로 초기화
int data={0}; //선언과 동시에 0으로 초기화
int data={0,}; //,를 적어도 선언과 동시에 0으로 초기화

그러나 아래와 같은 코드는 2개 이상의 값을 사용하여 초기화를 하려고 하기 때문에 오류가 발생한다.

int data{0,1};  //한 개의 메모리에서 2개를 초기화 시키면 오류

2. 배열의 초기화

 

배열은 메모리를 그룹 짓는 개념이기 때문에 변수를 선언하면서 0으로 초기화를 시키려면 {}를 사용해서 배열의 개수만큼 초깃값을 나열해야 한다.

int arr[5]={0,0,0,0,0}; //배열의 모든 항목이 0으로 초기화

하지만 배열이 많아지면 많아질 수록 이러한 방법은 불편해진다. 그래서 항목이 많은 배열을 0으로 초기화하고 싶으면 아래와 같이 초기화를 사용하면 된다.

 

총 3가지의 방법이 있다.

int arr[5]={0,};  //배열의 모든 항목을 0으로 초기화
int arr[5]={0};   //배열의 모든 항목을 0으로 초기화
int arr[5]={};    //배열의 모든 항목을 0으로 초기화

 

그리고 초기화 항목을 직접 나열하는 경우에는 배열을 선언할 때 항목의 개수를 적지 않아도 된다.

int arr[]={0,0,0,0,0} //[]에 5가 생략 ==int arr[5]와 동일

그렇다면 [] 안에 숫자를 안쓴 배열은 초기화를 어떻게 해야 할까? 

int arr[]={0,};             //1개의 항목이 초기화 ->int arr[1];
int arr[]={0,1,};           //2개의 항목이 초기화 ->int arr[2];
int arr[]={0,1,2,};         //3개의 항목이 초기화 ->int arr[3];
int arr[]={0,1,2,3,};       //4개의 항목이 초기화 ->int arr[4];

위의 코드에는 규칙이 있다. 안에 나열한 항목 개수대로 배열의 크기가 달라진다. 

 

즉 1번째 줄에는 [] 사이에 1이 생략이 되어있고, 순차적으로 2, 3, 4가 [] 사이에 생략이 되어 있는 것이다.

728x90
반응형
Comments