4673번 - 셀프 넘버
4673 만의 문제는 아니지만 이 문제를 풀다가 static에 궁금한 부분이 생겨서 질문을 드립니다.
8번째 줄의 static 으로 선언 되어있는 변수를 전역변수로 선언하면 정답이 되지만 이 글에 게시된 코드로 제출하면 컴파일 에러가 나옵니다.
혹시 이유를 알 수 있을까요?
스테틱 변수는 선언한 블록 내에서만 사용 가능한 변수 입니다. lifetime은 프로그램 작동시간이지만 scope는 블록 안이죠. 즉 메인에서 check를 사용하려하면 적어도 전역으로 static을 선언해야 하는거죠. 하지만 여기서는 파일을 두 개 이상 쓰는 일이 없기 때문에 전역 스테틱변수는 의미가 없습니다. 전역변수랑 같은 기능을 합니다.
전역 스테틱 변수는 일반 전역 변수와는 달리 다른 파일에서 extern선언해도 사용할 수 없습니다.
감사합니다!!
변수의 lifetime과 scope의 개념과 차이에 대해서 공부해보시면 좋을 것 같습니다.
감사합니다
댓글을 작성하려면 로그인해야 합니다.
hcmlr21 6년 전
4673 만의 문제는 아니지만 이 문제를 풀다가 static에 궁금한 부분이 생겨서 질문을 드립니다.
8번째 줄의 static 으로 선언 되어있는 변수를 전역변수로 선언하면 정답이 되지만 이 글에 게시된 코드로 제출하면 컴파일 에러가 나옵니다.
혹시 이유를 알 수 있을까요?