변수 관련 질문
들빛
2023.04.01
#include stdio.h
int multi(int n);
int main(void)
{
int n;
printf(정수 입력 : );
scanf(%d, &n);
printf(2의 %d승은 %d\n, n, multi(n));
return 0;
}
int multi(int n)
{
static int val=1;
val=val*2;
if(n==1)
return val;
multi(n-1);
}
재귀 함수 이용해서 2의 제곱승과 그 값을 출력하는 건데
multi함수 안 내용을 보면 val=val*2; 이게 문제가 되서 질문드립니다.
지금 작성된것으로는 multi 함수 내에서는 static으로 설정해놔서
실행하면 오류가 뜨지 않는데
그렇게 하지않고 main함수에 미리 int val=1; 을 선언한상태로 실행시키면
multi함수 내에서 val=val*2;이게val이 선언되지 않았다면서 오류가 뜨더군요
제가 알기로는 main함수내에서 변수 가 선언되면 main 함수내에 잇는 multi 함수가
변수를 가져다 쓸수있다고 생각하는데 왜 오류가 나는지 잘 모르겠습니다.
왜 오류가 나는지 알려주세요..