정보처리산업기사 실기 시험 기출 문제 - 문자 배열과 포인터
문제
다음 C 프로그램이 실행되었을 때의 동작을 설명하고, 출력 결과를 예측하시오.
소스 코드 파일명: array_and_pointer.c
#include <stdio.h>
main() {
    char a[3][5] = { "KOR", "HUM", "RES" };
    char* pa[] = { a[0], a[1], a[2] };
    int n = sizeof(pa) / sizeof(pa[0]);
    for (int i = 0; i < n; i++)
        printf("%c", pa[i][i]);
}
입력 예시
이 프로그램은 입력을 받지 않습니다.
출력 예시
KUE
해설
이 프로그램은 문자 배열과 포인터 배열을 초기화하고, 포인터 배열을 사용하여 특정 문자를 출력합니다.
- char a[3][5] = { "KOR", "HUM", "RES" };는 3행 5열의 문자 배열- a를 선언하고 각 행을 "KOR", "HUM", "RES"로 초기화합니다. 각 문자열 뒤에는 자동으로 널 문자('\0')가 추가됩니다.
- char* pa[] = { a[0], a[1], a[2] };는 포인터 배열- pa를 선언하고- a의 각 행의 주소를 초기화하여- pa의 각 원소가- a의 각 행을 가리키게 합니다.
- int n = sizeof(pa) / sizeof(pa[0]);는 포인터 배열- pa의 원소 개수를 계산하여- n에 저장합니다.- sizeof(pa)는 포인터 배열 전체의 크기를 반환하고,- sizeof(pa[0])는 배열의 한 원소, 즉 포인터의 크기를 반환합니다. 이를 나누어 배열의 길이, 즉 3을 얻습니다.
- for루프를 사용하여- pa의 각 원소(즉,- a의 각 행을 가리키는 포인터)에 대해- printf함수를 사용하여 해당 행의 i번째 문자를 출력합니다. 따라서 "KOR"의 첫 번째 문자 'K', "HUM"의 두 번째 문자 'U', "RES"의 세 번째 문자 'E'를 차례대로 출력합니다.
따라서 이 프로그램의 출력 결과는 KUE입니다. 이 프로그램은 문자 배열과 포인터 배열을 사용하는 방법과 배열의 인덱싱을 통해 특정 위치의 데이터에 접근하는 방법을 보여줍니다.
							추천 자료: ASP.NET Core 인증 및 권한 부여
						
						
							추천 자료: .NET Blazor에 대해 알아보시겠어요? .NET Blazor 알아보기를 확인해보세요!