[C++] 배열과 문자열
판다코딩 C++ 인강 공부 정리
C++는 복합데이터형을 제공한다.
사용자 정의대로 새로운 데이터형을 만들 수 있다.
복합데이터형 : 기본 정수형과 부동소수점형의 조합.
[ 배열 ]
#include <iostream>
using namespace std;
int main() {
short month[12] = { 1, 2, 3 };
cout << month[0] << endl; // 1
return 0;
}
배열(array) : 같은 데이터형의 집합typeName arrayName[arraySize];
short month[12] = { 1, 2, 3};month라는 이름의 12개의 사이즈를 가지고 있는 배열로
첫번째의 값이 1, 두번째의 값이 2, 세번째의 값이 3이다.
cout으로 month[0]을 출력시키면 첫번째 값인 1이 나온다. (컴퓨터언어는 기본적으로 0부터 시작함)
배열을 사용할 수 있는 몇가지 규칙
1. 배열 원소에 대입할 값들을 콤마로 구분하여 중괄호로 묶어 선언한다.
2. 초기화를 선언 이후 나중에 할수는 없다.
3. 배열을 다른 배열에 통째로 대입할 수 없다.
ex) short month[5] = { . . . }
short year[12] = { . . . }
year = month; X
4. 초기화 값의 개수를 배열 원소의 개수보다 모자라게 제공할 수 있다.
5. 배열을 부분적으로 초기화하면, 나머지 원소들은 모두 0으로 설정한다.
즉, 명시적으로 첫 번째 원소만 0으로 초기화하면 나머지 원소들은 모두 0으로 초기화된다.
6. 배열을 초기화할 때 대괄호 속을 비워두면 컴파일러가 초기화 값의 개수를 헤아려 배열 원소 개수를 저장한다.
[ 문자열 ]
#include <iostream>
using namespace std;
int main() {
// 문자열
char a[5] = { 'H', 'e', 'l', 'l', 'o'};
cout << a << endl;
return 0;
}
null 문자가 포함되지 않아서 알수없는 글자가 섞여서 출력됨.
#include <iostream>
using namespace std;
int main() {
// 문자열
char a[6] = { 'H', 'e', 'l', 'l', 'o', '\0'};
cout << a << endl;
return 0;
}
null 문자 삽입 후 정상적으로 출력됨.
[ 더 효율적으로 문자열을 선언하는 방법 ]
#include <iostream>
using namespace std;
int main() {
// 문자열
char a[] = "Hello";
cout << a << endl;
return 0;
}
배열의 사이즈를 비워두면 컴파일러가 자동적으로 배열에 알맞은 사이즈를 구해서 만들어준다.
{ } 중괄호가 아니라 " "쌍따옴표를 이용하여 배열을 초기화하게 되면
명시적으로 " "쌍따옴표는 null문자를 포함하기 때문에 원하는 값(Hello)만 출력되는 것을 확인할 수있다.