상세 컨텐츠

본문 제목

[C++] 문법( 배열, 형변환, _getch() )

C++ 문법

by simstealer 2022. 4. 13. 19:23

본문

배열(자료구조)이란?

- 같은 데이터타입의 여러 변수를 하나의 묶음으로 나타낸 것입니다.

 

배열의 데이터타입에 대한 동일한 크기로 메모리상에 "연속된 공간"이 할당되고 4 Btye 크기의 값이 메모리에 저장되며 선언방법은 int nums[10] 로 선언합니다.

 

int nums[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; //10개의 공간을 잡아 놓은 것(총 40 Btye)


배열의 변수 명이 메모리 주소 값으로 쓸 수 있어서 메모리 주소를 따로 알 필요가 없습니다.

 ※메모리 주소 확인 방법 : &변수명
즉, 배열 명이 메모리 "시작" 주소입니다.

 

cout << nums << endl;       //아래의 메모리주소를 확인했을때와 같은 값이 나오는걸 알 수 있습니다.
cout << &nums[0] << endl; // 변수명[0]이 처음 값이기 때문에 배열 명과 같은 메모리 주소가 나옵니다.

2차원배열 및 다차원배열
    배열이 "개념적으로" 2중으로, 다중으로 구성되어 있는 것입니다. ※실제론 1차원이다.

    1차원 배열 : int student_nums[5];       // 5개의 int
        -> 5명의 학생이 있다.
    
    2차원 배열 : int student_nums[3][5];    // 15개 int
        -> 3개 반에 각각 5명의 학생이 있다.
    
    3차원 배열 : int student_nums[4][3][5]; // 60개 int
        -> 4개 학년에 각각 3개 반이 존재하고 각 반에 5명의 학생이 있다.

 

2차원 배열 사용 예시만 좀 보도록하겠습니다.

    int student_nums[3][5] = {
                                      {1, 2, 3, 4, 5,},
                                      {6, 7, 8, 9, 10},
                                      {11, 12, 13, 14, 15}
                                     };

    cout << &student_nums[0][1] << endl; // 인덱스 주소가 틀리더라도 값은 메모리 주소는 연속되어 있기 때문에 다음 인덱스의 값으로 정상 출력됩니다. ex) student_nums[0][5] 값은 6이 출력됩니다.

 

 

형변환

- 데이터 타입을 변환합니다.
    묵시적 형변환 : _getch(); 와 같은 것을 사용하여 자동적으로 데이터 타입이 변환되는 것

                        _getch(); 는 엔터 없이 "문자 하나"를 입력받는 함수입니다.

                        _getch(); 는 입력 값을 ASCII값으로 반환합니다.


    명시적 형변환 : 문법을 사용하여 강제적으로 변환하는 것
        char input_key_char = _getch();
        cout << (int)input_key_char << endl; // (input_key_char 변수를 char로 변수 선언을 하였지만 강제적으로 (int)를                                                               변수 앞에 사용하므로서 char 타입에서 int 타입으로 변환을 합니다)

 

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

[C++] 문법_배열 실습2  (0) 2022.04.13
[C++] 문법_배열 실습1  (0) 2022.04.13
[C++] 문법_while 문  (0) 2022.04.12
[C++] 문법_switch 문  (0) 2022.04.12
[C++] 코드 닫기 박스 생성  (0) 2022.04.12

관련글 더보기

댓글 영역