책 내용 질문하기
정보처리기사 실기책 89페이지 궁금증이 생겨 질문글 올려요.
도서
2019 시나공 정보처리기사 실기(산업기사포함)
페이지
89
조회수
121
작성일
2019-09-24
작성자
탈퇴*원
첨부파일

#include <stdio.h>

func(i, j);

int main() {

 int a = 3, b = 12;
 a = func(a, b);

 printf("%d %d \n", a, b);
}

func(i, j)

int i, j;
{
 i *= 3;
 j /= 3;
 printf("%d %d \n", i, j);
 
}

 

89페이지의 func 함수에서 마지막 리턴문을 지운 코드입니다.

어쨰서 a가 5가 될까요?

 

=>디버깅 결과

9 4
5 12 

답변
2019-09-25 15:55:11

안녕하세요 길벗수험서 운영팀입니다.

 

return 명령어가 사용되지 않은 함수에서 반환된 값은 어떤 값이 출력될 지 예측할 수 없습니다.

 

컴파일러에서 해당 함수가 정상적으로 처리되었다는 것을 알려주는 (숨겨진)값이 반환될지,

메모리에 남아있는 쓸데없는 값이 반환될지 알 수 없죠.

 

사용하고 있는 컴파일러를 뜯어보지 않는 이상 말이죠.

(언어 별, 버전 별로 컴파일러는 달라질 수 있습니다.)

 

결론적으로.. 해당 수가 어떻게 5가 나왔는지는 알 수 없습니다.

 

행복한 하루되세요 :)

  • 관리자
    2019-09-25 15:55:11

    안녕하세요 길벗수험서 운영팀입니다.

     

    return 명령어가 사용되지 않은 함수에서 반환된 값은 어떤 값이 출력될 지 예측할 수 없습니다.

     

    컴파일러에서 해당 함수가 정상적으로 처리되었다는 것을 알려주는 (숨겨진)값이 반환될지,

    메모리에 남아있는 쓸데없는 값이 반환될지 알 수 없죠.

     

    사용하고 있는 컴파일러를 뜯어보지 않는 이상 말이죠.

    (언어 별, 버전 별로 컴파일러는 달라질 수 있습니다.)

     

    결론적으로.. 해당 수가 어떻게 5가 나왔는지는 알 수 없습니다.

     

    행복한 하루되세요 :)

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.