책 내용 질문하기
기출문제집, 69쪽 문제 9번 , 83쪽 문제 10번
도서
2021 시나공 정보처리기사 실기
페이지
0
조회수
229
작성일
2021-10-11
작성자
탈퇴*원
첨부파일
69쪽 문제9번에서는 int b =2; 가 해당 영역내에서만 유효해서 cal(b);에서의 else 계산이 반영이 안된다고 했는데 83쪽 문제 10번 배열도 int b =2; 랑 같은 위치에 선언되었는데 이건 init()함수에서 반영된 결과가 prnt함수에 왜 적용이 되나요..?
답변
2021-10-12 10:37:10

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

 

func(a)일 때

a가 일반 변수라면 a에 저장된 값이 전달되므로 변수 a에 저장된 값이 변동되지 않습니다.

a가 배열이라면 배열명 'a'는 a배열의 시작 주소를 가리킵니다.

즉, 값이 아닌 배열이 저장된 메모리의 주소를 전달하게 되므로 메소드에서의 값 변화가 메모리에 직접 영향을 끼쳐 main()에 있는 배열에도 영향을 주게 되죠.

 

행복한 하루되세요 :)

  • 관리자
    2021-10-12 10:37:10

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

     

    func(a)일 때

    a가 일반 변수라면 a에 저장된 값이 전달되므로 변수 a에 저장된 값이 변동되지 않습니다.

    a가 배열이라면 배열명 'a'는 a배열의 시작 주소를 가리킵니다.

    즉, 값이 아닌 배열이 저장된 메모리의 주소를 전달하게 되므로 메소드에서의 값 변화가 메모리에 직접 영향을 끼쳐 main()에 있는 배열에도 영향을 주게 되죠.

     

    행복한 하루되세요 :)

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