본문 바로가기
c

12_배열(Array)

by RongBee 2023. 4. 8.

 

Array는 배열이라는 뜻을 가지고있다.

 

C언어에서는 같은 자료형의 변수들을 묶어놓은 집합을 의미한다.

 

배열의 선언이란 같은 자료형의 변수를 묶어놓은 집합들의 공간을 만들어 주는 것이다.

 

배열의 초기화특정 공간의 값을 바꿔주는 것이다.

배열의 선언은 Datatype  ArrayName [ArrayLength]; 이렇게 해준다.

 

 

int arr[100];

 

대괄호 안에 배열의 길이는 공간의 개수를 뜻하고 배열을 이루고 있는 특정한 하나의 공간을 요소라고 한다.

대괄호([])는 인덱스 접근 연산자이다. 인덱스는 몇 번째 요소에 접근할지를 정하는 양수이다.

보통 배열의 길이 -1이 인덱스이다. 그래서 첫 번째 인덱스는 [0]이다.

그렇다면 int 자료형 변수를 100개 저장할 수 있는 배열을 선언해 보자

그리고 배열의 요소에 1부터 100까지 저장하고 출력해 보자

 

 

 

int main
{
   int arr[100];
   
   for(int i = 0; i < 100; i++)
   {
      arr[i] = i + 1;
      printf("arr[%d] : %d \n", i, arr[i]);
   }
   
   return 0;
}

 

 

이렇게 하면 100번 초기화하지 않아도 편하게 초기화 할 수 있게 되었다.

 

이번에는 선언과 동시에 다양하게 배열을 초기화 할 수 있는 방법들에 대해 알아보자!

 

 

int main()
{
     int Num[5] = {1, 2, 3, 4, 5};   // Num이라는 이름의 배열 공간의 길이는 5이고 1, 2, 3, 4, 5의 값을 저장
     Num[1] = 1;                     // Num이라는 이름의 두번째 배열 공간을 1로 초기화
                                     

     int Num2[] = {1, 2, 3, 4, 5};   // 배열의 공간은 5개이다 (ArrayLength = 5)
     const int ConstArr[5] = {1, 2, 3, 4, 5}; 
   //constArr[0] = 1; 요소 공간이 const이므로 값을 변경할 수 없다
}

 

 

배열을 선언 시 모든 요소를 한꺼번에 초기화 할 수 있다.

 

 

int Array[5];

for(int i = 0; i < 5; ++i)
{
   printf("Array[%d] 의 값을 입력해주세요. \n", i);
   printf("Array[i] 의 주소 : %p \n , &Array[i]);
   printf("i 주소           : %p \n , &i);

   printf("입력 : ");
   scanf_s("%d", &Array[i]);
}

for (int i = 0; i < sizeof(Array) / sizeof(Array[0]); ++i)
	{ printf("Array[%d] == %d \n", i, Array[i]); }
}

 

이렇게 해서 주소를 출력해주면 아래처럼 Array[1] ~ Array[4]까지의 주소가 4씩 늘어나는 것을 볼 수 있다.

왜 4씩 늘어날까? 이유는 배열의 자료형이 int라서 그렇다. int는 4byte의 크기를 가지고 있기 때문이다.

 

 

Array[0] 의 값을 입력해주세요
Array[i]의 주소 : 000000E22298F608
i 주소          : 000000E22298F634
입력 : 1
Array[1] 의 값을 입력해주세요
Array[i]의 주소 : 000000E22298F60C
i 주소          : 000000E22298F634
입력 : 2
Array[2] 의 값을 입력해주세요
Array[i]의 주소 : 000000E22298F610
i 주소          : 000000E22298F634
입력 : 3
Array[3] 의 값을 입력해주세요
Array[i]의 주소 : 000000E22298F614
i 주소          : 000000E22298F634
입력 : 4
Array[4] 의 값을 입력해주세요
Array[i]의 주소 : 000000E22298F618
i 주소          : 000000E22298F634
입력 : 5
Array[0] == 1
Array[1] == 2
Array[2] == 3
Array[3] == 4
Array[4] == 5

'c' 카테고리의 다른 글

14_함수(Function)  (0) 2023.04.14
13_문자열(string)  (0) 2023.04.11
11_구조체(structure)  (0) 2023.04.05
10_반복문2(for)  (0) 2023.04.02
09_반복문1(while, do while)  (0) 2023.03.30

댓글