- [ ] 안의 상수의 크기만큼 배열의 공간을 할당하고 그 공간 1개의 크기는 자료형의 크기와 같다.
ex) int a[10]의 크기 = 4 * 10 byte- [ ] 안에는 변수가 들어 올 수 없으며 항상 상수만을 받는다.
#include <iostream>
using namespace std;
int main() {
int num1[]{ 0, 1, 2, 3 };
int num2[4];
for (int i = 0; i < size(num1); i++)
cout << num1[i] << endl;
cout << "num1 배열의 크기 " << sizeof(num1) << endl;
memcpy(num2, num1, sizeof(num1));
/*
void* memcpy(void* dest, const void* source, size_t num)
첫번째 인자 dest = 복사 받을 메모리를 가리키는 포인터
두번째 인자 source = 복사할 메모리를 가리키는 포인터
세번째 인자 num = 복사할 데이터의 길이(byte 단위)
*/
for (int i = 0; i < size(num2); i++)
cout << num2[i] << endl;
return 0;
}
num1[0] = 0
num1[1] = 1
num1[2] = 2
num1[3] = 3
num1 배열의 크기 16
num2[0] = 0
num2[1] = 1
num2[2] = 2
num2[3] = 3
배열안에 배열을 할당한 것으로 2차원 배열일 경우 표와 같은 형태를 띈다.
#include <iostream>
using namespace std;
int main() {
int matrix1[3][3] = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
int matrix2[3][3] = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
int matrix3[3][3];
copy(&matrix1[0][0], &matrix1[0][0] + 3 * 3, &matrix3[0][0]);
/*
copy(InputIt first, InputIt last, OutputIt d_first);
first : 복사할 메모리를 가리키는 포인터
last : 복할 메모리의 마지막을 가리키는 포인터
d_first : 복사 받을 메모리를 가리키는 포인터
*/
for (int i = 0; i < size(matrix3); i++) {
for (int j = 0; j < size(matrix3[i]); j++)
cout << matrix3[i][j] << " ";
cout << "\n";
}
return 0;
}
1 2 3
4 5 6
7 8 9
for(int i = 0; i < size(arr[i]); i++){
for(int j = 0; < size(arr); j++)
cout << arr[j][i];
}
}
위처럼 행의 순서대로 출력할 수도 있지만
배열이 접해있지 않아 시간이 더욱 오래걸린다.