다음 C 언어 프로그램의 출력 결과는?#include <stdio… | [법원직 9급 전산·사서 컴퓨터일반] 24년 1회차 기출문제 상세 페이지
1[법원직 9급 전산·사서 컴퓨터일반] 24년 1회차
다음 C 언어 프로그램의 출력 결과는?
| #include <stdio.h> int f(int *a) { static int b=0; (*a)++; b=b+2; return b; } int main() { int x=0, y=0; x = f(&y); y = y + f(&x); printf("%d", x+y); } |
1
5
2
6
3
7
4
8
해설
정적 변수 b가 호출 사이에 값을 유지하므로 x+y의 값은 8이다.
첫 호출 f(&y)에서 y는 1이 되고 b는 2가 되어 2를 반환하므로 x = 2이다.
둘째 호출 f(&x)에서 x는 3이 되고 static 변수 b는 이전 값을 이어받아 4가 되어 4를 반환한다.
따라서 이고, 출력은 이다.
오류나 개정된 내용이 보이면 알려주세요