정보처리기능사 실기 시험 기출 문제 - 포인터를 통한 변수 값 변경
문제
다음 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 프로그래밍에서 데이터를 효율적으로 관리하는 데 중요한 개념입니다.
추천 자료: ASP.NET Core 인증 및 권한 부여
추천 자료: .NET Blazor에 대해 알아보시겠어요? .NET Blazor 알아보기를 확인해보세요!