본문 바로가기
--------------------*/C++ 프로그래밍1

배열에 관해 자주 잊어버리는 내용

by kk님 2020. 2. 9.

 

배열의 크기를 변수로 선언하기 위한 방법은 무엇일까요? 

더보기

const int num = 개수;

배열의 크기를 임의로 수정할수 없게끔 const를 붙여주어야 합니다.

 

 

배열의 선언과 동시에 초기화를 하지 않아도 될까요?

더보기

배열의 선언과 초기화는 동시에 해주어야 합니다.

int arrA[3];

arrA = {0,0,0}; ( X )

 

int arrB[3] = {0,0,0}; (O)

 

 

int arr[10] = {10,}; 의 결과는 어떻게 될까요?

더보기

arr[0]만 10, arr[1],arr[2], .... , arr[9]까지는 0 값이 들어갑니다.

 

 

배열을 초기화하지 않고 사용하게되는 경우 요소값은 어떤게 들어갈까요?

더보기

원래 메모리에 들어있던 쓰레기 값이 들어가는것 같다.

하지만 디버그 모드에서는 0값으로 들어간다고 한다.

아래 그림은 일반적으로 실행한 경우.

 

 

arrB = arrA; 이렇게 통째로 복사가 가능할까요?

더보기

불가능합니다.

 

 

함수로 배열을 전달한다는 것, 함수에서 매개변수는 배열의 어떤 값을 의미하나요?

더보기

배열의 시작주소를 의미합니다.

 

매개변수 이름을 생략하는 것이 가능할까요?

void printArr( int list[], int size) {

 ... }

 

더보기

네. 매개변수 이름은 생략이 가능합니다.

int는 배열에 들어가는 데이터타입을 나타내며,

[]는 배열이라는 것을 의미하기 때문입니다.

void printArr(int [], int ) {

 ... }

 

 

함수의 반환형으로 배열이 가능할까요?

int[] printReverse(int list[], int size)

더보기

C++에서는 배열을 그대로 넘길수는 없고 포인터를 이용하는 것은 가능합니다.