강의

멘토링

로드맵

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

태0님의 프로필 이미지
태0

작성한 질문수

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

함수와 재귀함수 (v2)

17. 함수와 재귀함수(v2) / 0:30:57 / return 명령어 중 double 자료형 관련 문의

작성

·

23

0

안녕하세요.

avgArray 함수 선언 코드블록 마지막 명령어가 return(double)sum/size; 인데요.

double 자료형에 괄호를 붙이는 이유가 뭔가요?

sum과 size 자료형이 모두 int여서 그런거라면 혹시 괄호를 생략해도 되나요?

그리고, (double) 뒤에 띄어쓰기가 없어서 조금 헷갈렸는데, 자료형 뒤에 띄어쓰기를 안해도 상관 없나요?

답변 1

0

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

태0님의 질문에 대한 답변을 드립니다. C 언어에서 (double)과 같은 형식은 캐스팅(casting)이라고 하며, 특정 표현식의 타입을 명시적으로 변환하기 위해 사용됩니다.

(double) 캐스팅의 이유

  • return (double)sum / size; 코드에서 (double)sumsum 값을 double 타입으로 변환하여 이후 계산 결과가 부동소수점 연산이 되도록 합니다.
  • sumsize가 둘 다 int 형태이기 때문에 그대로 나누기를 수행하면 정수 나누기로 처리되어 소수점 이하의 값이 손실될 수 있습니다. 이 문제를 방지하기 위해 sum을 먼저 double로 변환하여 정확한 결과를 얻도록 합니다.

괄호 생략 가능 여부

  • 괄호를 생략하면 sum / size가 정수 나누기로 취급되며, 이 경우 소수점 이하가 제거된 값이 결과가 됩니다. 따라서 원하는 값을 얻기 위해선 괄호를 반드시 사용해야 합니다.

띄어쓰기 관련

  • (double) sum에서 띄어쓰기는 선택사항입니다. 즉, (double)sum 또는 (double) sum 모두 의미상 동일합니다. 그러나 코드의 가독성을 위해 일반적으로 띄어쓰기를 권장합니다.

추가 참고 링크

이와 관련하여 더 깊이 있는 정보를 얻고자 하신다면 다음과 같은 질문을 참고하실 수 있습니다:
- C언어에서의 형 변환 (Casting) 사용 방법 - 형 변환에 대한 더 상세한 예제를 볼 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

태0님의 프로필 이미지
태0

작성한 질문수

질문하기