과목 구분 없음9급 지방직 공무원 컴퓨터일반 · 2018년05월19일 · 9/20
9.다음 C 프로그램의 출력 결과는?

1
a = 7, b = 10
2
a = 7, b = 30정답
3
a = 10, b = 10
4
a = 10, b = 30
해설
a의 값과 b의 값을 물어보는 문제다. func(num,&a,b)에서 a의 주솟값을 넘겨주며 *x가 받아 *x는 a의 값을 의미하게된다 *(m+1)은 배열num의 두번째 원소(=3)를 뜻하며 (*m+1)은 배열num의 첫번째 원소에 +1을 한것(=3)을 의미한다 고로 n은 3+3=6이되며 *x = ++n에 의해 연산전에 +1을 하여 *x = a = 7 이된다 함수에 리턴값이 없지만 주솟값으로 접근해 저장공간을 직접 조작하였으므로 값이 변경된다 b는 값을 복사해 넘겨줬을뿐 돌려받거나 주솟값으로 값을 바꾼적이 없으므로 그대로 30을 받아 30이된다.