ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2024.02.23 - 배열
    C++ 2024. 2. 24. 23:02
    • 배열
    자료형 배열이름[배열의크기]

    배열은 단일 식별자를 통해 여러개의 변수에 접근할 수 있게 해주는 데이터 타입이다.

     

    1. 배열을 사용해보기

    arr라는 이름을 가진 크기 10의 정수형 배열을 만들고, 배열의 0번 인덱스에 1을 넣어 초기화 해주었다.

    (배열의 인덱스는 0번 부터 세어야 한다. 크기가 10인 배열이라면, 인덱스는 0~9)

    arr[0]은 값을 넣어주어 1이 출력되지만, arr[1]은 초기화를 해주지 않아 쓰레기(가비지) 값이 들어갔다.

     

    2. 배열을 선언하는 여러가지 방법

    - 크기를 명시적 선언하고 크기에 맞게 초기화 해주기

     

    *크기를 넘어선 인덱스를 부르면 어떻게 될까?

    오류가 뜨지는 않고, arr[3]이 만들어지면서 쓰레기 값이 들어가는 것 같다.

     

    *그러면 배열의 길이는 마음대로 늘어나는 것일까? 크기를 벗어난 인덱스를 초기화 하려고 해보자.

    그건 안되는 것 같다. 

     

    이렇게 써도 안된다. 배열의 크기를 벗어난 곳을 초기화하거나 참조하려고 하지 말자.

     

    - 크기를 생략하고 초기화 해주기

    배열의 크기를 생략하면 초기화 해준만큼 배열의 크기가 결정된다. (배열의 크기는 3이 된다)

     

    - 크기를 명시적 선언하고 일부만 초기화 해주기

    크기를 명시적 선언후 일부 요소만 초기화 해주면, 나머지 인덱스는 값 0으로 초기화된다.

     

    *전부 0으로 초기화 하기

     

    - for문을 이용한 초기화

     

    3. 다차원 배열

    배열을 가진 배열을 다차원 배열이라고 한다.

    2차원 배열의 경우 왼쪽 요소를 행, 오른쪽 요소를 열이라고 생각하는 것이 편리하다.

     

    - 다차원 배열의 초기화1

     

    - 다차원 배열의 초기화2

    0행0열, 0행1열, 0행2열, 1행0열, 1행1열, ... 순서로 초기화 되는 것을 확인할 수 있다.

    1차원 배열과 마찬가지로 나머지 요소는 0으로 초기화 된다.

     

    • & 연산자와 데이터의 주소
    &변수이름

     

    & 연산자를 통해 해당 이름을 가지는 변수에 할당된 메모리의 주소 값을 알아낼 수 있다.

     

    예시

     

    배열에 할당된 메모리 주소도 알 수 있다.

    각 배열 요소 앞에 & 연산자를 붙여서 할당된 메모리의 주소값을 알아낼 수 있다.

    int형 배열이기 때문에 각 요소의 주소 값이 4만큼 차이나는 것을 확인할 수 있다.

    (int형은 4byte의 메모리 공간을 할당받는다)  

    배열 이름 arr는 배열에 할당된 메모리 주소값의 시작을 가리킨다. &arr[0]과 값이 일치하는 것을 확인할 수 있다.

     

     

    'C++' 카테고리의 다른 글

    2024.02.26 - 함수  (0) 2024.02.26
    2024.02.23 - 실습  (0) 2024.02.24
    2024.02.22 - 난수 생성  (0) 2024.02.22
    2024.02.22 - for  (0) 2024.02.22
    2024.02.22 - while  (0) 2024.02.22
Designed by Tistory.