책 내용 질문하기
p42 주소내용 답변에 대한 질문입니다.
도서
2024 시나공 정보처리기사 실기 기출문제집
페이지
42
조회수
106
작성일
2024-07-17
작성자
유*찬
첨부파일

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

30개의 요소를 갖는 n이라는 문자형 배열을 전역변수로 선언을 했고

gets(n); 에서 사용자로부터 입력받은 문자열을 n에 저장을 합니다

라는 답변을 받았는데요,

다른 질문에서 지역변수와 전역변수는 static 을 사용하여 정의하고 정적변수는 따로 정의가 필요 없으시다는 답을 해 주셨습니다.


배열 같은경우에는 static대신 char을 사용하여 정의할 경우에는 정적변수가 아닌 전역변수, 지역변수로 정의를 하는건가요? 제가 드린 질문이 맞다면 static은 어떤 자료형? 을 정의할때 전역변수와 지역변수의 정의로 사용되는 것인가요?



그리고 return n 함수에서 n 은 숫자만 반환하는것인줄 아랑ㅆ는데 n은 숫자뿐아닌 배열도 반환이 가능하시단 말씀이시죠?

답변
2024-07-17 20:45:25

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

main( ) 함수처럼 특정 함수 안에서 선언된 변수를 지역변수 라고 하고

main( ) 함수 내부에서 변수를 선언했다면 main( ) 함수안에서만 사용할수 있고

a( ) 함수 내부에서 변수를 선언했다면 a( ) 함수안에서만 사용할수 있습니다


main( ) 함수 또는 특정 함수 밖에서도 변수를 선언할 수 있는데 이렇게 함수 밖에서 선언된 변수들을 전역 변수라고 합니다

이런 전역변수는 프로그램 안(한문제)에서는 어디서든 사용할 수 있고, 저장된 값도 유지가 됩니다.


크게보면 함수를 어느 위치에서 선언을 하냐? 에 따라 지역변수, 전역변수로 나누어지는것이고

전역변수는 초기값을 따로 지정을 하지 않으면 0으로 초기화가 됩니다.

지역변수는 따로 초기값이 없을때 사용자가 알수 없는 값(쓰레기값)으로 초기화가 되기 때문에 초기값을 지정을 해줍니다


지역변수나 전역변수를 선언시 static으로 선언하면 정적 지역변수, 정적 전역변수가 되는것이고 이런것들을 정적변수라고 합니다.

정적 변수는 선언하는 위치에 상관없이 프로그램 종료시 값이 소멸되고,

초기화는 처음 호출시에만 시행되는데 초기값을 따로 지정하지 않으면 0으로 자동 초기화를 하고, 이후에는 이전 값을 기억하고 있습니다.

정적 변수는 전역변수와 마찬가지로 프로그램이 종료되기 전까지 메모리가 소멸되지 않는 변수로 함수를 벗어나도 변수가 사라지지 않고 계속 유지가 됩니다.


정적 전역변수를 선언하면 자신이 선언한 소스파일에서는 언제든 가져다 쓸수가 있고

정적 지역변수를 선언하면 해당 함수내에서만 사용할수 있습니다


질문하신 문제에 return n 코드가 있는데 여기서 n은 배열의 이름입니다.

배열의 이름만 써서 반환을 하게 되면 n배열의 시작주소를 함수를 호출했던 곳으로 반환이 됩니다

return 에서는 값도 반환을 할수 있고, 주소값을 반환 할수도 있습니다.

행복한 하루되세요 :)

  • 관리자
    2024-07-17 20:45:25

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

    main( ) 함수처럼 특정 함수 안에서 선언된 변수를 지역변수 라고 하고

    main( ) 함수 내부에서 변수를 선언했다면 main( ) 함수안에서만 사용할수 있고

    a( ) 함수 내부에서 변수를 선언했다면 a( ) 함수안에서만 사용할수 있습니다


    main( ) 함수 또는 특정 함수 밖에서도 변수를 선언할 수 있는데 이렇게 함수 밖에서 선언된 변수들을 전역 변수라고 합니다

    이런 전역변수는 프로그램 안(한문제)에서는 어디서든 사용할 수 있고, 저장된 값도 유지가 됩니다.


    크게보면 함수를 어느 위치에서 선언을 하냐? 에 따라 지역변수, 전역변수로 나누어지는것이고

    전역변수는 초기값을 따로 지정을 하지 않으면 0으로 초기화가 됩니다.

    지역변수는 따로 초기값이 없을때 사용자가 알수 없는 값(쓰레기값)으로 초기화가 되기 때문에 초기값을 지정을 해줍니다


    지역변수나 전역변수를 선언시 static으로 선언하면 정적 지역변수, 정적 전역변수가 되는것이고 이런것들을 정적변수라고 합니다.

    정적 변수는 선언하는 위치에 상관없이 프로그램 종료시 값이 소멸되고,

    초기화는 처음 호출시에만 시행되는데 초기값을 따로 지정하지 않으면 0으로 자동 초기화를 하고, 이후에는 이전 값을 기억하고 있습니다.

    정적 변수는 전역변수와 마찬가지로 프로그램이 종료되기 전까지 메모리가 소멸되지 않는 변수로 함수를 벗어나도 변수가 사라지지 않고 계속 유지가 됩니다.


    정적 전역변수를 선언하면 자신이 선언한 소스파일에서는 언제든 가져다 쓸수가 있고

    정적 지역변수를 선언하면 해당 함수내에서만 사용할수 있습니다


    질문하신 문제에 return n 코드가 있는데 여기서 n은 배열의 이름입니다.

    배열의 이름만 써서 반환을 하게 되면 n배열의 시작주소를 함수를 호출했던 곳으로 반환이 됩니다

    return 에서는 값도 반환을 할수 있고, 주소값을 반환 할수도 있습니다.

    행복한 하루되세요 :)

  • 유*찬
    2024-07-20 22:09:31
    완벽..
· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.