easy software

C언어 배열을 이해하자 본문

C언어/포인터와 배열

C언어 배열을 이해하자

JAVA 웹개발자 2015. 1. 13. 14:53

안녕하세요. 이번에는 배열에 관해 학습해 보도록 하겠습니다.

 

만약에 변수를 1000개 선언하고, 그 변수에 값을 저장해야 하는 일이 있습니다.

 

그런데 일일이 변수 천개를 선언하고 그 변수에 값을 저장하는것은 사실상 불가능하겠지요?

 

뭐 시간만 많다면야 문제가 되지 않겠지만 변수의 이름도 헷갈릴 것이고, 상당히 번거로울 겁니다.

 

그런 문제점을 보완하기 위해서 배열을 사용하게 되는데요, 배열이란 같은 자료형의 집합입니다.

 

즉 천개의 변수를 하나의 이름을 통해서 제어할 수 있는 것이지요.

 

int a, b, c, d, e, f, g;

 

이렇게 변수를 선언했습니다.

 

일일이 값을 넣는게 번거롭지 않을까요?

 

배열을 이용해 봅시다.

 

int arr[7];

 

이렇게 선언해준다면 int 형의 arr라는 공간이 메모리상에 7개가 연속적으로 생성이됩니다.

 

 

 

 

배열의 길이는 7이지만, 접근할때는 0번부터 시작하는 인덱스를 사용합니다.

 

즉, 길이가 7인 배열의 시작은 0번이고 끝은 6번이 되는 것이지요.

 

이 배열에 10, 20, 30, 40, 50, 60, 70을 저장하면?

 

 

 

이런식으로 메모리에 저장이 됩니다!

 

정말 간단하지 않나요?

 

그럼 아래의 예제를 통해서 자세히 알아보겠습니다.

 

이번 예제는 사용자로부터 5개의 정수를 입력받아서 합을 계산해주는 예제입니다.

 

왜 이렇게 되는지 한번 생각해 보시기 바랍니다.

 

#include <stdio.h>

 

int main(void){

 

 int sum = 0;

 int arr[5]; //길이가 5인 배열 선언

 

//인덱스를 통해 배열에 접근하여 값을 저장
 for (int i = 0; i < 5; i++){
      printf("더할 수를 입력 : ");
      scanf_s("%d", &arr[i]);

 

     sum += arr[i];
 }

 

 printf("모두 더한 값 : %d\n", sum);

 

     return 0;
}

Comments