Always Be Wise

배열(Array) 본문

프로그래밍 언어/C

배열(Array)

bewisesh91 2021. 12. 3. 20:12
728x90

배열을 이용하면 하나의 변수에 여러 개의 값을 넣을 수 있다.

int main()
{
	int arr[5] = {1, 33 , 47, 102, 155};

	return 0;
}

위와 같이 변수 이름 뒤에 대괄호를 이용해서 배열을 초기화할 수 있다. 대괄호 안의 숫자는 배열의 크기를 나타낸다.

위의 경우 5개의 값이 들어갈 수 있다는 의미이다. 배열 각각의 값들에 접근하려면 값의 위치를 알아야 한다.

값의 위치는 인덱스로 알 수 있다. 인덱스는 0부터 시작하기 때문에 배열에서 가장 첫 번째 값의 인덱스는 0이다.

 

#include <stdio.h>

int main()
{
  int arr[5] = {1, 33 , 47, 102, 155};

  printf("arr 배열의 첫 번째(=인덱스가 0) 값 : %d\n", arr[0]);
  printf("arr 배열의 두 번째(=인덱스가 1) 값 : %d\n", arr[1]);
  printf("arr 배열의 세 번째(=인덱스가 2) 값 : %d\n", arr[2]);
  printf("arr 배열의 네 번째(=인덱스가 3) 값 : %d\n", arr[3]);
  printf("arr 배열의 다섯 번째(=인덱스가 4) 값 : %d\n", arr[4]);

  return 0;
}

배열은 위와 같이 대괄호 안에 인덱스를 넣어 접근할 수 있다.

위의 경우 대괄호 안에 0을 입력하면 1을 출력하고 1을 입력하면 33을 출력한다.

배열을 초기화하는 방법은 기본적으로 아래와 같다.

int main()
{
  int arr1[5] = {1, 33 , 47, 102, 155}; // 선언과 동시에 초기화
  int arr2[5] = {5}; // 0 번째 값을 5 로 초기화하고 나머지는 모두 0 으로 초기화
  int arr3[5] = {5, 10}; // 0 번째 값을 5, 1 번째 값을 10으로 초기화하고 나머지는 모두 0 으로 초기화
  int arr4[5] = {}; // 모두  0 으로 초기화
  int arr5[5]; // 초기화 하지 않음
  int arr6[] = {11, 22 , 33, 44}; // 배열의 크기가 4로 정해지면서 자동으로 초기화

  return 0;
}

만약 배열의 개수를 넘어서는 범위를 출력하거나 배열을 초기화하지 않은 배열을 출력할 경우 쓰레기 값이 나온다.

변수를 선언함과 동시에 변수는 시스템 메모리 상에서 한 부분을 차지한다. 변수의 값을 정해주었다면 해당 메모리 영역의 값은

변수의 값이 되지만, 정해주지 않았을 경우에는 메모리 자체에서 가지고 있는 값을 보여준다. 이 값이 바로 쓰레기 값이다.

 

일반적으로 변수들은 모두 메모리의 특정한 주소에 무작위로 저장된다. 그런데 배열의 경우는 좀 다르다. 배열의 경우는 선언한 

크기만큼 연속적으로 연결되어 있다. 아래와 같은 코드의 경우, arr 배열은 int형이다. 따라서 배열 한 원소당 4바이트의 크기를

갖으며 주소는 4씩 증가한다. arr 배열의 0번째 원소 주소가 1000이라면, 1000~1003까지는 arr[0], 1004~1007까지는 arr[1],

1008~1011까지는 arr[2]가 저장된다. 

 

 

 

 

'프로그래밍 언어 > C' 카테고리의 다른 글

조건문  (0) 2021.12.03
문자열  (0) 2021.12.03
여러가지 연산자  (0) 2021.12.03
입출력하기  (0) 2021.12.03
상수란?  (0) 2021.12.03
Comments