Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++의 배열에 대한 연습 문제

<시간/>

배열 데이터를 전염성 있는 메모리 위치에 저장하는 데이터 구조입니다.

배열 선언

Declaring arrays is done by the following syntax :
int 1D[] - for 1-D array
int 2D[][] - for 2-D array

더 적은 수의 요소로 배열을 초기화하면 나머지는 0으로 초기화됩니다.

배열 요소의 메모리 주소

1-D array : address[i] = baseAddress + i*size
2-D array (row major) : address[i][j] = baseAddress + (i*n + j) * size

이제 연습 문제를 살펴보겠습니다.

다음 코드 스니펫의 출력 예측

int arr[5] = {6, 9};
for(int i = 0; i<5; i++)
   cout<<arr[i]<<" ";

출력

6 9 0 0 0

배열은 2개의 값으로 초기화되고 나머지 값은 0으로 초기화되어 출력에 반영됩니다.

int arr[][3] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
cout<<arr[1][2];

출력

6

정수 배열의 주어진 요소의 주소를 찾습니다. 기본 주소가 1420인 경우.

1D array : arr[43]
address = 1420 + 43*2 = 1506
2D array of size arr[10][10] : arr[5][4], stored as row major
address = 1420 + (5*10 + 4)*2 = 1420 + (54)*2 = 1528.