//1.배열의 크기만 정의하는 방법, 각 공간별로 값을 할당해야한다.
자료형 배열명[배열의 크기] = {};
// 인덱스 0에서 9까지의 배열
int Array[10] = {};
//2. 배열을 선언하면서 값을 할당.
자료형 배열명[배열의크기] = {1,2,3,4,5};
int Array2[5] = {1,2,3,4,5};
배열의 크기를 구하는 것은 유용하다. 배열의 크기를 구하면 배열 크기만큼 반복문을 활용하여 배열의 내용을 출력하거나 값을 이용할 수 있기 때문이다.
사이즈 = sizeof(배열명) / sizeof(타입)
int Array[10] = {};
int size = sizeof(Array) / sizeof(int);
for (int i = 0; i < size; i++)
{
cout << Array[i] << endl;
}
!!!주의!!!
만약 배열을 초과해서 접근한다면 컴파일이 잡아서 에러를 낼 수 있지만 에러를 내지 않는 경우에 다른 변수의 주소를 참조하여 접근하기 때문에 변수를 의도치 않게 변경될 수 있으니 주의해야한다.
배열을 임의로 만들고 해당되는 배열의 주소값을 출력하면 배열은 순차적으로 이루어진 구조라는 것을 알 수 있다. 출력되는 주소는 16진수로 컴퓨터는 이 16진수를 2진수로 변환하여 참조한다.
//임의의 배열 생성
int Array2[5] = {1,2,3,4,5};
// 배열의 크기 생성
int size = sizeof(Array2) / sizeof(int);
//배열 크기만큼 반복문
for (int i = 0; i < size; i++)
{
//주소값 출력
cout << &Array2[i] << endl;
}
00000068CAAFF588
00000068CAAFF58C
00000068CAAFF590
00000068CAAFF594
00000068CAAFF598
'00000068CAAFF588': 0000 0000 0110 1000 1100 1010 1010 1111 1111 0101 1000 1000 '00000068CAAFF58C': 0000 0000 0110 1000 1100 1010 1010 1111 1111 0101 1000 1100
첫번째와 두번재를 이진수를 변환하여 두 비트의 차이를 보면 1000과 1100 으로 4비트가 차이난다. 즉, int타입 4비트씩 배열에 할당된 것을 알 수 있다.