책 내용 질문하기
실기 기출문제 모의고사 질문
도서
2021 시나공 정보처리기사 실기
페이지
69,83
조회수
306
작성일
2021-10-15
작성자
탈퇴*원
69페이지 9번 에서 b 변수는 메인 안에서 생성되어 cal 함수 뒤에도 값이 바뀌지 않는다고 이해 했습니다.
그런데 83페이지에서는 numAry 배열은 init(numAry) 함수 이후에 [1.2.3.4.5] 에서 1,3,5,7,9] 로 바뀌고 그것이 유지 된다고 하는데 왜 다른지 잘 모르겠습니다. return 값으로 반환해 저장하는 것도 아닌데 말입니다…
답변
2021-10-15 11:43:49
안녕하세요 길벗수험서 운영팀입니다.
func(a) 라는 함수(메소드)를 호출할 때
a가 일반 변수라면 a에 저장된 값이 전달되므로 이후 func(a)에서 이 값을 변경해도 변수 a에 저장된 값이 변동되지 않습니다.
반면 a가 배열이라면 배열명 'a'는 a배열의 시작 주소를 가리킵니다.
즉, 값이 아닌 배열이 저장된 메모리의 주소를 전달하게 되므로 func(a)에서의 값 변화가 메모리에 직접 영향을 끼쳐 main()에 있는 a배열에도 영향을 주게 되죠.
행복한 하루되세요 :)
-
관리자2021-10-15 11:43:49
안녕하세요 길벗수험서 운영팀입니다.
func(a) 라는 함수(메소드)를 호출할 때
a가 일반 변수라면 a에 저장된 값이 전달되므로 이후 func(a)에서 이 값을 변경해도 변수 a에 저장된 값이 변동되지 않습니다.
반면 a가 배열이라면 배열명 'a'는 a배열의 시작 주소를 가리킵니다.
즉, 값이 아닌 배열이 저장된 메모리의 주소를 전달하게 되므로 func(a)에서의 값 변화가 메모리에 직접 영향을 끼쳐 main()에 있는 a배열에도 영향을 주게 되죠.
행복한 하루되세요 :)