본문 바로가기
정보처리기사

[정보처리기사 실기] 이중 포인터 연습 문제 모음 10개 🔥

by hello_world.cpp 2025. 4. 30.
728x90
반응형

 

 

 

 

C언어 이중 포인터(Double Pointer) 연습 문제 및 풀이

C언어 이중 포인터(Double Pointer) 연습 문제 및 풀이

문제 1

int a = 10;
int *p = &a;
int **pp = &p;
printf("%d", **pp);
답: 10
이중 포인터 pp는 포인터 p를 가리키고, p는 변수 a를 가리킨다. 따라서 **pp는 a의 값 10을 출력한다.

문제 2

int x = 5;
int *px = &x;
int **ppx = &px;
**ppx = 15;
printf("%d", x);
답: 15
이중 포인터를 사용해 변수 x의 값을 15로 변경한다.

문제 3

char c = 'Z';
char *pc = &c;
char **ppc = &pc;
printf("%c", **ppc);
답: Z
ppc가 가리키는 값은 포인터 pc가 참조하는 변수 c이며, 그 값은 문자 Z이다.

문제 4

int val = 20;
int *pval = &val;
int **ppval = &pval;
printf("%p", *ppval);
답: 변수 val의 주소
*ppval은 포인터 pval의 값, 즉 val의 주소를 출력한다.

문제 5

int num = 8;
int *pnum = #
int **ppnum = &pnum;
*pnum = **ppnum + 7;
printf("%d", num);
답: 15
**ppnum은 num의 값(8)을 참조하며, 여기에 7을 더해 num을 15로 변경한다.

문제 6

int m = 3, n = 4;
int *pm = &m;
int **ppm = ±
**ppm = n;
printf("%d", m);
답: 4
ppm이 참조하는 변수 m의 값을 n(4)의 값으로 변경한다.

문제 7

int arr[] = {1, 2, 3};
int *parr = arr;
int **pparr = &parr;
printf("%d", *(*pparr + 2));
답: 3
이중 포인터를 통해 배열 arr의 세 번째 원소(3)를 참조한다.

문제 8

char str[] = "Double";
char *pstr = str;
char **ppstr = &pstr;
printf("%c", *(*ppstr + 4));
답: l
문자열 "Double"의 다섯 번째 문자인 'l'을 출력한다.

문제 9

int data = 50;
int *pdata = &data;
int **ppdata = &pdata;
**ppdata += 10;
printf("%d", data);
답: 60
이중 포인터를 이용해 변수 data의 값을 10 증가시켜 60으로 만든다.

문제 10

int v1 = 5, v2 = 10;
int *pv1 = &v1;
int **ppv1 = &pv1;
*ppv1 = &v2;
printf("%d", *pv1);
답: 10
이중 포인터를 통해 포인터 pv1이 가리키는 주소를 v2로 변경하여, v2의 값을 출력한다.
728x90
반응형

댓글