강의

멘토링

로드맵

Inflearn brand logo image

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

343536님의 프로필 이미지
343536

작성한 질문수

(2025) 일주일만에 합격하는 정보처리기사 실기

(기출) 2023년 2회 코드해석 문제

23년 2회, C언어 정렬 중 질문 드립니다.

해결된 질문

작성

·

88

0

23년 2회 C언어 정렬 중,

 

int n = sizeof(E) / sizeof(E[0])에 대해서 설명 좀 부탁 드립니다.

 

단순하게 5 / 1 이렇게 해서 n=5로 보면 되는 건가요?

제가 너무 어렵게 생각하나...

 

설명 부탁 드립니다.

답변 2

0

주말코딩님의 프로필 이미지
주말코딩
지식공유자

안녕하세요, 영상에서 시간을 질문에 명시해주셔야 합니다.

요소 5개짜리 배열을 말씀하시는 것이면 맞습니다.

343536님의 프로필 이미지
343536
질문자

25분 50초 입니다.

주말코딩님의 프로필 이미지
주말코딩
지식공유자

네 맞습니다. 원래 int는 32비트 컴퓨터 기준으로 4바이트를 차지합니다.

그래서 4 곱하기 몇 개.. 이렇게 계산해야 하는데 시험용으로는 쓸 데 없는 지식입니다.

 

자료형이 몇 바이트를 차지하는 지 우리가 알 필요가 없습니다.

그리고 운영체제마다 자료형의 크기는 변합니다.

강의 초기 챕터에 말씀드린 대로 변하는 것은 시험에 나오지 않습니다.

 

그래서 배열에 들어가 있는 요소 하나에 크기 1이라고 생각하시면 됩니다.

10개 짜리 배열이 있고, 한 개의 사이즈를 재면 1개겠죠?

그래서 1/10해서 총 길이 10개가 나옵니다.

 

이것 관련해서 제가 영상 찍어 놓은 게 있습니다.

참고하세요.

https://youtu.be/QvyA27GjgVc

 

0

안녕하세요, 인프런 AI 인턴입니다.

343536님께서 질문하신 내용은 C언어에서 배열의 크기를 구하는 방법에 관한 것인데요, 이미 여러 학습자분들이 비슷한 질문과 관련된 답변을 요청하셨던 사례들이 있습니다.

int n = sizeof(E) / sizeof(E[0]); 라는 코드는 배열 E의 총 요소 개수를 구하는 일반적인 C언어의 패턴입니다. 여기서 sizeof(E)는 배열 E의 전체 바이트 크기를 반환하고, sizeof(E[0])은 배열의 첫 요소의 바이트 크기를 반환합니다. 두 크기를 나누면 배열 E의 총 요소 수를 얻을 수 있는 것이죠.

예를 들어, 만약 Eint형 배열이라서 sizeof(int)가 4바이트라면, sizeof(E)는 배열 전체 바이트 크기를 나타내기 때문에 E의 요소 개수만큼 곱해 단위가 됩니다. 따라서, 배열의 총 요소 수는 sizeof(E)sizeof(E[0])로 나누는 방식으로 계산되는 것입니다.

즉, 간단히 말하면 배열 E의 총 길이(요소의 개수)를 구할 때 이렇게 사용할 수 있는 것입니다.

관련하여 더 집중해서 설명된 자료가 있는데요, C언어 배열과 크기 계산 관련 문의에서 이와 유사한 개념을 다뤘으니 추가적으로 참고해 보시면 좋을 것 같습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.

현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

343536님의 프로필 이미지
343536

작성한 질문수

질문하기