본문 바로가기

교육 노트/C++ 기초강의

[C++ 때려 잡기] C++ 기초강의 1-3 기본문법-배열기초

2018/08/23 - [교육 노트/C++] - C++ 기초 강의 OT

2018/08/23 - [교육 노트/C++] - C++ 기초강의 1-1 기본문법-Hello World

2018/08/23 - [교육 노트/C++] - C++ 기초강의 1-2 기본문법-변수




 여러 개의 변수를 한번에 선언하고 싶거나 연관성있는 여러개의 변수를 하나로 사용하고 싶을때 배열을 사용한다.

만약 학생30명을 관리하는 프로그램을 만들기위하여 변수를 선언한다면


int stuID1;

int stuID2;

...


int stuID30;


이런식으로 변수 30개를 만들수는 없으므로


사용하는것이 배열이다


1. 배열의 선언과 사용


 배열 선언

<type> <name>[<number>]

 = {value1, value2, ... , value<number>}

배열 사용

<name> [<index>]

Index의 범위는 0 ~ number-1


예시를 보는것이 쉬을듯하다


int stuID[30];  //배열 선언

int stuID[30] = {2018232333,2018232234}; //배열 선언과 초기화

와 같이 배열 만들고


이를 사용할때는 zero-based, 즉 0부터 사용한다


stuID[0] 이 배열의 첫번째를 가르키는것이다.

따라서 30개짜리 배열을 만들면 stuID[0] 부터 stuID[29] 까지 사용 할 수 있는것이다.

만약 실수로 stuID[30]을 사용하려고 하면 에러가 나게된다!





2. 문자열

char가 문자 하나를 표현하는 방법임은 이미 배웠다

그럼 문자 여러개를 표현하는 방법은 무엇일까


바로 문자(char)와 배열(array)를 함께 사용하는것이다. 이를 문자열이라고 한다.




여기서 주의할점은 char를 배열로 선언하되 원하는 최대 글자수의 + 1의 크기로 배열 크기를 정해야 한다는것이다.

그 이유는 다음과 같다





컴퓨터는 그냥 문자열을 char의 배열로써 인식할뿐이다. 따라서 어디가 문자열의 마지막인지 알지못하므로 해당 문자열의 마지막을 알려주는 NULL 문자가 들어갈 공간을 남겨두어야한다. 위와같이 사용하면 알아서 마지막에 NULL 문자가 들어가게된다 ("KimKimKim" 마지막에 숨겨진 NULL 문자가 삽입 되어있는것이다)



반드시 그런것은 아니지만 일단 영어 알파벳은 1글자에 1바이트, 한글은 2바이트를 차지한다.

그이유는 영어 알파벳은 아스키 코드이며

한글은 아스키 코드가 아니기때문이다.



3. 아스키 코드


ascii code에 대한 이미지 검색결과



아스키 코드란 0과1 밖에 모르는 컴퓨터가 문자를 표현하기 위한 코드로

숫자로 문자를 표현하는 방식이다

이전에 숫자 4 와 문자 '4'는 다르다고 했는데

그 이유가  아스키 코드 표를 보면 char 라인의 문자 4 는 decimal(숫자)로 52이다

즉 '4'는 숫자 52인 셈이다.

컴퓨터가 숫자 52를 읽고 이게 char라면 그냥 모니터 화면에 4를 출력하게 되있는것이다.

초창기 컴퓨터의 경우 알파벳 소문자, 대문자 , 숫자 , 그외 필요한 문자들 을 표기하기위해 1바이트(8비트, 128) 이면 충분한데

이제 한글, 한문등 다른 언어를 표기하기 위하여 다른 코드 (유니 코드) 가 만들어지고 이를 표현하기위하여 2바이트를 사용하는것이다.

728x90