1 minute read

C++ 6강

배열 Array

같은 데이터타입을 가진 다수의 변수들을 하나의 변수만으로 저장할 수 있게 도와주는 자료구조

[TOC]

배열의 크기 구하기

  • integer 하나당 크기 : 4byte // sizeof(int);

  • character 하나당 크기 : 1byte // sizeof(char);

int kor[50] = kor[0], kor[1]… kor[49]; [인덱스]는 0부터 시작한다.

​ ❔왜냐하면 메모리 주소가 0부터 시작하기 때문!

  1. 함수 sizeof()
1
printf("%d",sizeof(arrayName));
cs

sizeof(kor) = 4byte(integer하나의 크기)x50 = 200byte

배열[인덱스] : 인덱스는 배열의 범위를 벗어나지 않도록 주의!

배열 값 저장해주기

  1. 루프 돌리기
1
2
3
4
5
int a[10];
 
for(i=0; i<10; i++){
    a[i]= i+1;
}
cs
  1. 바로 선언해주기
1
int a[10= {1,2,3,4,5,6,7,8,9,10};
cs

결과 : a[0] = 1, a[1] = 2, a[2] = 3… a[9] = 10

avg = avg + a[1]; 👉 avg += a[1];

avg = avg/10; 👉 avg /= 10;

  1. 배열 초기화하기
1
int numArr[10= { 0, };
cs

문자열 Array 만들기

기본식

1
char c[8= {'a','n','t','h','o','n','y','\0'};
cs

❗character Array의 마지막은 항상 ‘\0’을 추가하여 여기가 char Array의 끝이라는 것을 알려줘야한다!

‘\0’ = null terminater

그러므로 인덱스에 +1이 추가된다.

간편한 표현법 1

1
char c[8= "anthony";
cs

single quotation이 아닌 double quotation으로 한번에 string을 array에 저장할 수 있다. (null terminater는 알아서 인식한다!)

간편한 표현법 2

1
char c[] = "anthony";
cs

Array의 사이즈는 알아서 계산해~

2D Array

2차원 배열

1
2
3
4
5
6
7
8
자료형 배열이름 [세로크기][가로크기];
 
int numArr[3][4] = { 
    { 1234 }, 
    { 5678 },
    { 9101112 }
};
int num1 = numArr[0][2]; 
cs

int num1 : 2차원 배열에서 세로 인덱스 0, 가로 인덱스 2인 요소에 접근 = 3

  1. 2중 for문을 이용한 2차원 배열 값 출력
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    int numArr[3][4] = {
        {11223344},
        {55667788},
        {99110121132}
    };
    int row = sizeof(numArr[0]) / sizeof(int);
    int col = sizeof(numArr) / sizeof(numArr[0]);
     
    for (int i=0; i < col; i++){
        for (int j=0; j < row; j++){
            printf("%d",numArr[i][j];
            }
        printf("\n");
        }
    cs

    라인6 : row(가로 요소가 최대 몇개) = 가로 한 줄의 크기 / 요소의 크기

    라인7 : col(세로 요소가 최대 몇개) = 전체 배열 크기/ 가로 한줄의 크기

    라인9 : 세로 요소 갯수만큼 반복

    라인10 : 가로 요소 갯수만큼 반복

    라인11 : numArr[세로 i ][가로 r]

    라인13 : 가로 요소를 출력한 뒤 다음 줄로 넘어감

  2. 2차원 배열 초기화하기
1
int numArr[3][4] = { 0, };
cs

Updated:

Leave a comment