C language Chapter 7. 배열

안녕하세요

 

저번에는 C언어의 반복문에 대해서 배워 보았습니다.

오늘 알아볼 내용은 배열입니다.

 


1. 배열이란?

 

일반 변수는 상자 하나를 만드는 것이라면 배열은 만들면 여러 개의 상자가 같이 묶여있는 것으로 생각하면 편합니다.

 

배열은 [ ]기호를 써서 int a[5]; 와 같이 선언합니다. [ ] 안에는 배열의 크기를 지정해주면 됩니다.

 

2. 배열 초기화 및 참조

 

배열 초기화는 { }기호를 써서 초기화를 합니다. 배열안의 있는 각각의 내용들은 원소라고 불립니다. 이 때 []기호 안의 숫자를 인덱스라고 말합니다.

 

int a[5];

 

int a[5] = {1, 2, 3, 4, 5};

 

배열의 첫 번째 원소는 1이 아니라 0으로 시작합니다. 이 내용은 처음에 많이 헷갈리고 틀리시는 부분이라 꼭 숙지하고 가셔야 합니다.

 

예를 들어 a배열의 세 번째 원소는 a[3] 이 아니라 a[2]로 접근하며 이와 같이 배열 원소 값에 접근하는 것을 참조한다고 합니다.

 

배열을 선언만 한 후 초기화를 통해 값을 지정해 주지 않으면 쓰레기 값이 나오게 됩니다.

 

#include <stdio.h>

int main() {
    int a[3];
    printf("%d\n", a[0]);
    printf("%d\n", a[1]);
    printf("%d\n", a[2]); 
    printf("%d\n", a[3]);
}

 

만약 int a[5] = {1};  { }로 초기화를 해주면 따로 값을 넣지 않은 부분은 0으로 채워집니다.

#include <stdio.h>

int main() {
    int a[3] = {1};
    printf("%d\n", a[0]);
    printf("%d\n", a[1]);
    printf("%d\n", a[2]); 
}

 

 

또한 배열을 선언할 때 따로 길이를 지정을 안해주어도 초기화로 원소를 지정해 줄 수 있습니다.

#include <stdio.h>

int main() {
    int a[] = { 1, 2};
    printf("%d\n", a[0]);
    printf("%d\n", a[1]);
}

 

 

3. 배열 입출력

 

배열 입력은 첫 번째 원소부터 &a[0], &a[1] 로 받고 출력도 동일하게 a[0], a[1]으로 해줍니다.

 

배열을 입출력 할 때는 주로 for 반복문을 사용하여 나타냅니다.

 

#include <stdio.h>

int main(){
    int a[10];
    for(int i=0; i<10; i++){
    	scanf("%d",&a[i]);
    }
    for(int i=0; i<10; i++){
    	printf("%d\n",a[i]);
    }
}

이상으로 글을 마치겠습니다.

 

잘못된 부분이 있으면 알려주시면 감사하겠습니다!