:단일 식별자를 통해 같은 자료형의 여러 변수에 접근할 수 있게 해주는 집계 데이터 유형
같은 배열 안에서는 연속된 메모리를 사용한다
ex > int 변수명[??] = { 1, 2, 3 ... }
[??]안에는 해당 배열 안에 들어가는 요소의 갯수다.
배열 출력시에는 0번이 첫번째 요소가 된다. 이때 같은 배열 안의 요소들의 메모리는 연속된 공간을 차지하며,
잘못 입력할시 엉뚱한 메모리 정보를 불러오므로, 주의해야 한다.
int nums[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
cout << nums << endl;
cout << nums[0] << endl;
cout << nums[1] << endl;
cout << nums[2] << endl;
cout << nums[3] << endl;
cout << nums[4] << endl;
cout << nums[5] << endl;
cout << nums[6] << endl;
cout << nums[7] << endl;
cout << nums[8] << endl;
cout << nums[9] << endl; // 4 byte씩 증가함. (연속된 메모리)
배열이 (개념적으로) 2중, 다중으로 구성되어 있는 것. (실제로는 1차원)
1차원 배열 : int student_nums[5];
ex> 5명의 학생이 있다. 5개의 int
2차원 배열 : int student_nums[3][5];
-> 3개 반에 각각 5명의 학생이 있다. 15개의 int
3차원 배열 : int student_nums[4][3][5];
-> 4개 학년에 각각 3개의 반과 각 반에 5명의 학생이 있다. 60개의 int
int student_nums[3][5] = { {1, 2, 3, 4, 5}, {6, 7, 8, 9, 10}, {11, 12, 13, 14, 15} };
cout << student_nums[1][3] << endl; // 9 출력.
cout << student_nums[0][6] << endl; // 7 출력 ([1][1]) -> 연속된 메모리 사용으로 출력은 가능하나 정상적인 사용 방법은 아니다.
구구단의 결과를 저장하는 2차원 배열을 하나 선언하고,
for문을 이용해서 배열 변수에 구구단의 결과값을 저장하고
숫자 두개를 입력받아서 적합한 결과값을 출력해보자.
예시)
//(결과 저장 완료)
//몇 단을 볼까요 : _a
//몇을 곱할까요 : _b
//a * b = ??
int nums[8][9] = {};
int gugu_1st;
int gugu_2nd;
for (int y = 2; y < 10; y++)
{
for (int x = 1; x < 10; x++)
{
nums[y - 2][x - 1] = y * x;
}
}
cout << "(결과 저장 완료)\n" << endl;
cout << "몇 단을 볼까요 : ";
cin >> gugu_1st;
cout << "\n몇을 곱할까요 : ";
cin >> gugu_2nd;
cout << "\n\n" << gugu_1st << " * " << gugu_2nd << " = " << nums[(gugu_1st - 2)][(gugu_2nd - 1)];
: 데이터타입을 변환한다.
묵시적 형변환 : 그냥 대입한다
int num_1 = 1;
char a = 'a';
명시적 형변환 : 변환할 자료형을 명시(int)해준다.
int num_99 = 99;
cout << (char)num_99 << endl; // c 출력