13번으로 표시된 줄
printf("%d, %d\n", a, b);
에서
이전 리턴값이 없는 예제1번에선 a, b의 값이 모두 9, 4로 변경된 상태였는데
이번에 리턴값이 있는 함수에선 a만 변형되고 b는 변형이 적용되지 않은 것인가요?
안녕하세요 길벗수험서 운영팀입니다.
예제1과 예제2 모두 func 함수에서 출력할 때는 변경된 값이 출력되며,
main으로 돌아와 출력할 때는 예제1은 변화없음, 예제2는 리턴받은 a의 값만 변화합니다.
예제1의 코드를 보죠.
func 함수에서 a, b의 값을 i와 j가 받은 후 값을 변화시켜 출력합니다. (9, 4 출력)
이후 main 함수로 돌아와서 a와 b의 값을 출력하지만(괄호 11번) a와 b는 이전과 값이 변하지 않은 3, 12를 출력합니다.
예제2의 코드를 보죠.
func 함수에서 a, b의 값을 i, j가 받은 후 값을 변화시켜 출력합니다. (9, 4 출력)
이후 main 함수로 돌아와 return 받은 값을 a에 저장하게 되므로, 이후 출력하게 되면(괄호 13번) a의 값만 변화한 9, 12가 출력되게 됩니다.
행복한 하루되세요 :)
-
관리자2020-06-15 19:46:35
안녕하세요 길벗수험서 운영팀입니다.
예제1과 예제2 모두 func 함수에서 출력할 때는 변경된 값이 출력되며,
main으로 돌아와 출력할 때는 예제1은 변화없음, 예제2는 리턴받은 a의 값만 변화합니다.
예제1의 코드를 보죠.
func 함수에서 a, b의 값을 i와 j가 받은 후 값을 변화시켜 출력합니다. (9, 4 출력)
이후 main 함수로 돌아와서 a와 b의 값을 출력하지만(괄호 11번) a와 b는 이전과 값이 변하지 않은 3, 12를 출력합니다.
예제2의 코드를 보죠.
func 함수에서 a, b의 값을 i, j가 받은 후 값을 변화시켜 출력합니다. (9, 4 출력)
이후 main 함수로 돌아와 return 받은 값을 a에 저장하게 되므로, 이후 출력하게 되면(괄호 13번) a의 값만 변화한 9, 12가 출력되게 됩니다.
행복한 하루되세요 :)