정보처리산업기사 실기 시험 기출 문제 - 포인터와 배열 접근
추천 자료: ASP.NET Core 인증 및 권한 부여
문제
다음 C 프로그램이 실행되었을 때의 동작을 설명하고, 출력 결과를 예측하시오.
소스 코드 파일명: pointer_array_access.c
#include <stdio.h>
void func(int* p) {
printf("%d\n", *p);
printf("%d\n", p[2]);
}
int main() {
int a[7] = {1, 2, 3, 4, 5};
func(a);
func(a + 2);
}
입력 예시
이 프로그램은 사용자로부터 입력을 받지 않습니다.
출력 예시
1
3
3
5
해설
이 프로그램은 배열 a
와 포인터를 사용하여 배열 요소에 접근하고 값을 출력합니다.
- 배열
a
는{1, 2, 3, 4, 5}
로 초기화되며, 나머지 두 요소는 기본값0
으로 초기화됩니다. func
함수는 인자로 받은 포인터p
를 사용하여 배열 요소에 접근합니다. 첫 번째 호출에서p
는 배열a
의 시작 주소를 가리킵니다. 따라서*p
는a[0]
즉1
을,p[2]
는a[2]
즉3
을 출력합니다.- 두 번째 호출에서
p
는a + 2
로, 배열의 세 번째 요소 주소를 가리킵니다. 이 때*p
는a[2]
즉3
을,p[2]
는a[4]
즉5
를 출력합니다.
이 프로그램은 포인터를 사용하여 배열의 특정 요소에 접근하고, 포인터 연산을 통해 다양한 배열 요소의 값들을 참조하고 출력하는 방법을 보여줍니다.
추천 자료: .NET Blazor에 대해 알아보시겠어요? .NET Blazor 알아보기를 확인해보세요!