C언어 기초 6-2일차 : 1차원 배열

bitterpotato·2021년 1월 13일
0

C언어 기초

목록 보기
7/7

배열


배열은 동일한 데이터형을 갖는 변수들의 모임이다. 이를 바탕으로 한 번에 여러 개의 변수를 선언할 수 있다. 일반 변수의 선언과 달리 대괄호가 이용된다.

아래와 같이 원하는 크기의 배열 변수를 선언할 수 있다.

(자료형) (배열 변수의 이름)[배열 변수의 크기];

아래는 선언하는 예시이다.

#include <stdio.h>

int main () {
    int myarray[4];
    return 0;
}

위의 코드로 선언할 경우 컴퓨터 메모리 내에서 아래 그림과 같은 공간이 생성된다는 개념으로 이해하면 된다. (아직 초기화를 하지 않았으므로 각각의 공간에는 쓰레기 값이 들어있다.)

여기서 0, 1, 2, 3... 이런 것은 인덱스라고 하며 '주소'라는 느낌으로 받아들여도 된다. 또한 우리가 배열을 선언할 때에 대괄호 사이에 배열의 크기를 대입했지만 앞으로 우리가 해당 배열의 n번째에 저장된 값을 가져올 때에는 인덱스 값을 이용한다.


1차원 배열


1차원 배열은 배열 중에서 가장 많이 이용된다. 또한 myarray[2] 이렇게 뿐 만 아니라 포인터라는 c언어 계열의 특징을 바탕으로도 접근할 수 있는데, 이는 추후에 설명할 예정이다.


1) 선언


위에서 언급했던 것 처럼 아래의 형식으로 선언할 수 있다.

int myFirstArray[50];

위 코드는 int 자료형의 50개의 크기를 갖는 myFirstArray 배열을 선언한다는 의미이다.


2) 대입


아래의 코드를 바탕으로 선언한 배열을 생각해 보자.

#include <stdio.h>

int main () {
    int myarray[4];
}

배열 문단에서 언급한 바와 같이, 위의 코드로 선언한 배열은 아래와 같이 생겼다.

이때, 아래의 코드를 바탕으로 myarray 배열 안에 저장되어 있는 값을 대입하거나 가져와서 비교할 수 있다.

#include <stdio.h>

int main () {
    int myarray[4]; //크기가 4인 배열 선언
    
    myarray[2] = 4; // myarray 배열 변수의 index 2에 4 대입
}

해당 코드가 있을 경우는 아래와 같이 myarray 배열이 선언되어 있다고 생각해도 좋다.

물음표로 되어 있는 부분은 초기화가 진행되지 않아 쓰레기 값이 담겨져 있어서 물음표로 처리했다.

나머지는 일반 변수를 다루는 것과 동일하다. 또한, int 형인 변수로 인덱스 숫자를 대신할 수 있다.


3) 초기화


배열은 일부 혹은 전부를 초기화 할 수 있다.

아래의 코드와 같이 초기화가 가능하다.

#include <stdio.h>

int main () {
    int myarray[4]; //크기가 4인 배열 선언 (초기화 x)
    int myarray2[3] = { 0}; //크기가 3인 배열을 선언하고 모두 0으로 초기화
    int myarray3[4] = { 0,}; //크기가 4인 배열을 선언하고 모두 0으로 초기화
    int myarray4[4] = { 0, 1, 2, 3}; //크기가 4인 배열을 선언하고 각각 0, 1, 2, 3으로 초기화
    
    myarray[2] = 4; // myarray 배열 변수의 index 2에 4 대입
}
profile
개발자 망생이

0개의 댓글