728x90
반응형
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
반응형
'정보처리기사' 카테고리의 다른 글
[정처기 족보 필기]💻 정보처리기사 빈출 문제 모음 퀴즈.zip (스스로 확인해보자!!) (0) | 2025.05.09 |
---|---|
[정보처리기사 실기] SQL 활용 연습 문제 2탄 🔥 (0) | 2025.04.30 |
[정보처리기사 실기] SQL 활용 연습 문제 🔥 (0) | 2025.04.30 |
[정보처리기사 실기] 포인터 연습 문제 모음 10개🔥 (0) | 2025.04.30 |
[정보처리기사] 족보 문제 링크, 필기 요약pdf, 유용한 사이트 모음 (이 글 하나로 정처기 준비하세요) (0) | 2024.05.04 |
댓글