강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

Ad Astra님의 프로필 이미지
Ad Astra

작성한 질문수

홍정모의 따라하며 배우는 C언어

10.5 2차원 배열과 메모리

3차원 배열

작성

·

354

0

int arr_3d[2][3][4] = {

{

{000,001,002,003},

{010,011,012,013},

{020,021,022,023},

},

{

{100,101,102,103},

{110,111,112,113},

{120,121,122,123},

}

};

이거 큰묶음 2번째목록은 제대로 출력되는데

큰묶음 1번째에서 

0 1 2 3 

8 9 10 11

16 17 18 19

로 출력되네요 이유가 뭘까요

퀴즈

53%나 틀려요. 한번 도전해보세요!

C 언어에서 표준 배열의 요소들은 메모리에 어떻게 저장될까요?

서로 떨어진 위치에 임의로 저장된다.

링크드 리스트 형태로 연결되어 저장된다.

연속적인(contiguous) 메모리 공간에 저장된다.

스택에 쌓이는 형태로 저장된다.

답변 2

2

앞에 0 때문에 8진수로 인식하는 거 같아용

0

윗 분 말씀이 맞습니다. 0 으로 시작하는 정수는 8 진수를 뜻합니다. 

예를 들어 012 가 10 으로 출력되고 있는데 이는 8진수 12를 (012 의 0 은 8진수다라는 걸 의미하는 것일 뿐이니 8진수로 12 를 뜻하는 숫자가 되겠습니다.) 10진수로 변환한 결과입니다. 1 * 8 + 2 * 1 = 10

여담으로 16진수는 0x 로 시작합니다. (0xAB12 이런식)

Ad Astra님의 프로필 이미지
Ad Astra

작성한 질문수

질문하기