반응형
ex.
#include<stdio.h>
int func(int n);
int main(void) {
int num;
printf("%d₩n", func(5));
rerturn 0;
}
int func(int n) {
if(n < 2)
return n;
else {
int i, tmp,, current = 1, last = 0;
for(i = 2; i<= n; i++) {
tmp = current;
current += last;
last = tmp;
}
reurn current;
}
해설
num | n (n<2) | i(i<=n) | i++ | tmp | current(current += last) | last | |
초기값 | 5 | 2 | 1 | 0 | |||
5<2 거짓 -> else문 수행 | 2<=5 참 | 3 | 1 | 1+0 = 1 | 1 | ||
3<=5 참 | 4 | 1 | 1+1 = 2 | 1 | |||
4<=5 참 | 5 | 2 | 2+1 = 3 | 2 | |||
5<=5 참 | 6 | 3 | 3+2 = 5 | 3 | |||
6<=5 거짓 -> for 블록 나온다. | |||||||
return current | 5 | - | - | - | - | - | - |
for를 나오면 return current가 있는데
current값만 리턴시키고 나머지 함수 내에서 쓰였던 지역변수(n, i, tmp, cur, last)는 사라진다.
return 값은 호출한 func(5)로 들어가고 5를 출력하게 된다.
반응형
'iOS > 정보처리기사' 카테고리의 다른 글
[정보처리기사] C언어 - 함수와 변수의 유효범위 (0) | 2022.06.21 |
---|---|
[정보처리기사] C언어 - 함수에 주소를 전달하는 예제1 (0) | 2022.06.21 |
[정보처리기사] C언어 - 함수의 기본 (swap함수 예제) (0) | 2022.06.20 |
[정보처리기사] C언어 - 배열 포인터 (0) | 2022.06.20 |
[정보처리기사] C언어 - 구조체, 포인터 구조체.. (0) | 2022.06.17 |