책 내용 질문하기
void 관련
도서
2023 시나공 정보처리기능사 실기
페이지
253
조회수
302
작성일
2023-07-03
작성자
별*희
첨부파일

교재의 253쪽에는 void가 있으면 반환값이 없어 main에 영양을 주지 않는다 라고 설명이 되어 있는데, 255쪽 14번 문제는 static에 void가 없어 값이 반환된것이고, 

256쪽 같은 경우 static 다음 void가 적여 있는데 다시 main 값에 반환되어서 a값과 b값이 바뀌었습니다. void가 적혀 있으면 무조건 값이 반환되지 않아야 하는지 않는지요??

책을 2번 돌리고 있는데 처음에도 헷갈렸는데 영상을 봐도 이해가 되지 않습니다.

혹시 답을 주시는 분이 시간이 괜찮으시면 직접전화 부탁드려요.ㅜㅜ 너무 헷갈립니다. 너무 답답합니다.ㅠㅠ 부디 도와주시길

답변
2023-07-05 09:59:55

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

 

먼저 기본적으로 사용자 정의 함수는 값을 전달하면 계산 후 결과 값을 반환하는 역할을 수행합니다.

이 때 어떤 결과 값을 반환할 지 void, int, char 등 자료형을 결정하죠.

만약 void라면 반환하는 값이 없다는 의미(void=비어있는)이므로 main에 어떤 값도 돌려주지 못하니 영향을 주지 않게 되는 것이죠.

이게 일반적인 사용자 정의 함수입니다.

 

다만 사용자 정의 함수를 호출할 때 값을 전달하는 것이 아닌 '주소'를 전달할 때는 이것이 조금 달라집니다.

문제 15에서는 인수로 'myVar'를 전달하는 데, 이것은 구조체의 이름이지 어떤 값이 아닙니다. 이 때에 주소가 전달된 것이죠.

이렇게 주소가 전달된 경우는 사용자 정의 함수에서는 해당 주소를 바탕으로 해당 메모리의 값을 직접 변경하게 되므로, 값을 main으로 반환하지 않아도 사용자 정의 함수에서 변경된 값들이 main에도 그대로 영향을 주게 됩니다.

 

이렇게 주소가 전달되는 경우는 배열, 구조체와 같은 자료구조, 자바의 클래스, 포인터를 통한 직접적인 주소 전달 등이 있습니다.

 

값을 전달하는 경우의 사용자 정의 함수와 주소를 전달하는 경우의 사용자 정의 함수를 구분하여 다시 한 번 사용자 정의 함수 문제들을 살펴보세요.

 

행복한 하루되세요 :)

  • 관리자
    2023-07-05 09:59:55

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

     

    먼저 기본적으로 사용자 정의 함수는 값을 전달하면 계산 후 결과 값을 반환하는 역할을 수행합니다.

    이 때 어떤 결과 값을 반환할 지 void, int, char 등 자료형을 결정하죠.

    만약 void라면 반환하는 값이 없다는 의미(void=비어있는)이므로 main에 어떤 값도 돌려주지 못하니 영향을 주지 않게 되는 것이죠.

    이게 일반적인 사용자 정의 함수입니다.

     

    다만 사용자 정의 함수를 호출할 때 값을 전달하는 것이 아닌 '주소'를 전달할 때는 이것이 조금 달라집니다.

    문제 15에서는 인수로 'myVar'를 전달하는 데, 이것은 구조체의 이름이지 어떤 값이 아닙니다. 이 때에 주소가 전달된 것이죠.

    이렇게 주소가 전달된 경우는 사용자 정의 함수에서는 해당 주소를 바탕으로 해당 메모리의 값을 직접 변경하게 되므로, 값을 main으로 반환하지 않아도 사용자 정의 함수에서 변경된 값들이 main에도 그대로 영향을 주게 됩니다.

     

    이렇게 주소가 전달되는 경우는 배열, 구조체와 같은 자료구조, 자바의 클래스, 포인터를 통한 직접적인 주소 전달 등이 있습니다.

     

    값을 전달하는 경우의 사용자 정의 함수와 주소를 전달하는 경우의 사용자 정의 함수를 구분하여 다시 한 번 사용자 정의 함수 문제들을 살펴보세요.

     

    행복한 하루되세요 :)

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