재귀함수 , return
매1혹
2023.05.06
#include stdio.h
int n=0;
void jo (int i)
{
n++;
printf(%5d,n);
if(n=i) return;
jo(i);
n--;
printf(%5d,n);
}
void main ()
{
int i;
scanf(%d,&i);
jo(i);
}
재귀함수인데요.. 빨간색의 return다음에 아무것도 안젹혀 있는데 이건 무슨 의미인지 궁금합니다...^^
-
스위트초코 2023-05-06
c99표준에 오면서 기존에 인정되던 암묵적인 리턴값을 가지는 리턴이 더이상 인정되지 않도록 바뀐걸로 알고 있습니다.(즉 return;이런거 인정 안하게 바뀌었다는 말입니다) 앞으로 표준이 어떻게 바뀔지는 모르지만 암묵적인 리턴이나 암묵적인 리턴값을 가지는 리턴은 안쓰는게 좋으실겁니다.
-
크나 2023-05-06
return의 의미는 함수내에서 처리된 결과 값을 메인쪽으로 반환해줄때 쓰는것입니다. 지금은 그냥 리턴밖에 없기때문에 메인으로 돌려주는 반환값이 없다는걸 뜻하고요.. 함수 이름은 int jo (int i)로 바꿔주시고 return n; 이렇게 해주시면 n값을 최종적으로 메인으로 반환해준다는 뜻입니다. 그래도 잘 이해가 안가신다면 함수의 다향한 소스를 보시면 이해가 갈듯 싶내요 ^^
-
세련 2023-05-06
함수가 void형이군요. 이 뜻은 반환값은 없다는 것입니다. 즉 값은 반환하지 않고 자신을 호출했던 곳으로 돌아간다는 뜻입니다.