반복문을 활용해보자.

#include <iostream>
using namespace std;

int main(){
    char v1, v2, v3, v10

    v1 = 'a';
    v2 = 'a'; v3 = 'a'; v10 = 'a'

    cout << v1 << endl; 
    cout << v2 << endl; cout << v3 << end; cout << v10 << endl;

    return 0;
}

이렇게 일일히 타입을 지정하고, 값을 지정하면 상당히 불편하다.

그래서 우린 for 문을 사용할 수 있다 .

#include <iostream>
using namespace std;

int main(){
    char arr[10]; // 배열로 선언 : 자료형 배열이름 [배열크기]
    int i;

    for (i=0; i<10; i++){ // 첫번째 조건부터 시작, 두번째 조건이 참일 경우 loop body 진행하고 세번째 조건문 실행, i++; 는 i += 1;과 같음
      arr[i] = 'a'; // loop body
    }

    for (i=0; i<10; i++)
    cout << arr[i] << endl; // state가 하나뿐이면, {}안에 안넣어도 됨!

    return 0;
}

** 배열에는 항상 같은 타입을 넣어야 된다! **

배열의 인덱스 번호는 0부터 시작한다!

배열 원소의 접근

선언문에서 arr[n] 에서 n은 배열의 개수를 뜻함

실행문에서 arr[n] 에서 n은 인덱스를 뜻함!

선언문에서 int grade [10]; 했다면( size 가 10인 배열을 생성 0~9까지 인덱스가 있음)

실행문에서 int grade [10] = 99; 이렇게 인덱스를 10을 불러오면 오류가 일어남 적합한 범위가 아니니까.

gdb에서 arr

Q )
p arr[-1] 실행시
$1 = 85 'U' 라고 뜨는데 왜 그런걸까요?

p arr[10]
$2 = 0 '\000'
처럼 지정되지 않은 값은 0이 떠야하는 것 아닌가요?

A)
크게 프로젝트를 할 때 저렇게 로드하면 절대 안됨.
규칙을 어기면 지맘대로 나오는데, 이상한 결과값을 주는 오류가 발생할 수 있음

배열의 초기화

int grade[5] = {10, 20, 30, 40, 50};

int grade[5] = {10, 20, 30}; // size 는 5개로 말해놓고, 3개의 원소만 초기화했다면, 남은 2개는 0으로 초기화됨.

2차원 배열의 초기화

int s[3][5] = {
{1,2,3,4,5},
{1,2,3,4,5},
{1,2,3,4,5},
}; // s[3]의 뒤에 , 가 붙는데 왜 그런거지? 붙든 안붙든 상관없는건가? 

실행 해보고 다음 시간에 질문 해보자.

 

실행결과 :

똑같은거같은데,, 메모리 저장공간도 똑같고, p arr해도

{{1,2,3,4,5},

{1,2,3,4,5},

{1,2,3,4,5}}; 으로 출력함

 

'TIL > [C++ 프로그래밍} TIL' 카테고리의 다른 글

TIL (22.03.21)  (0) 2022.03.21
TIL (22.03.20)  (0) 2022.03.21
TIL 3 (22.03.16)  (0) 2022.03.16
TIL 2 (22.03.14)  (0) 2022.03.14
TIL 1 (22.03.14)  (0) 2022.03.14