정보처리기능사 실기 시험 기출 문제 - 포인터를 통한 변수 값 변경
추천 자료: ASP.NET Core 인증 및 권한 부여
문제
다음 C 프로그램이 실행되었을 때의 동작을 설명하고, 출력 결과를 예측하시오.
소스 코드 파일명: pointer_value_modification.c
#include <stdio.h>
int main()
{
int* pnum, Num1 = 200, Num2 = 300;
pnum = &Num1;
(*pnum) += 40;
pnum = &Num2;
(*pnum) -= 50;
printf("Num1=%d\nNum2=%d", Num1, Num2);
return 0;
}
입력 예시
이 프로그램은 입력을 받지 않습니다.
출력 예시
Num1=240
Num2=250
해설
이 프로그램은 포인터를 사용하여 변수의 값을 변경하고, 변경된 값들을 출력합니다.
int* pnum, Num1 = 200, Num2 = 300;
에서,Num1
과Num2
는 각각 200과 300으로 초기화된 정수 변수이고,pnum
은 정수형 포인터입니다.pnum = &Num1;
을 통해pnum
은Num1
의 주소를 가리킵니다.(*pnum) += 40;
을 통해Num1
의 값을 40 증가시킵니다. 결과적으로Num1
은 240이 됩니다.pnum = &Num2;
로 이제pnum
은Num2
의 주소를 가리킵니다.(*pnum) -= 50;
을 통해Num2
의 값을 50 감소시킵니다. 결과적으로Num2
는 250이 됩니다.- 마지막으로, 변경된
Num1
과Num2
의 값을 출력합니다.
이 프로그램은 포인터를 사용하여 간접적으로 변수의 값을 변경하는 기법을 보여줍니다. 이는 C 프로그래밍에서 데이터를 효율적으로 관리하는 데 중요한 개념입니다.
추천 자료: .NET Blazor에 대해 알아보시겠어요? .NET Blazor 알아보기를 확인해보세요!