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

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

작성한 질문수

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

10.5 2차원 배열과 메모리

3차원 배열

작성

·

263

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

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

답변 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

작성한 질문수

질문하기