본문 바로가기

IT/C언어

C언어본색 연습문제 Part 2.3.3

1. 문제 

 다음 그림을 보고 1단계에서 2단계까지를 나타내는 프로그램을 작성하시오.



2. 결과 



3. 코드


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
 
int main()
{
    int num1 = 10;
    int* ip1 = NULL;
    int** ip2 = NULL;
    int *** ip3 = NULL;
 
    ip1 = &num1;
    ip2 = &ip1;
    ip3 = &ip2;
 
    printf("%d %d %d %d \n", num1, *ip1, **ip2, ***ip3);
 
    return 0;
 
}
cs

4. 설명
이 문제는 다차원포인터를 이해했는지 확인하는 문제입니다.
num1에는 10의 값이 들어가있고, 그 이후 포인터가 참조, 그 포인터를 이중포인터가 참조.. 이런 식으로 모두 엮어주는 것이죠.
&와 *가 만나면 상쇄한다는 정의를 기억하시고 헷갈리신다면 하나하나 치환해서 확인해보세요.
예를 들어 ip = &num1 를 선언했으니 *ip = *&num1 = num1 이렇게 서로 상쇄되서 값을 출력하겠죠?


'IT > C언어' 카테고리의 다른 글

C언어본색 연습문제 Part 2.3.5  (0) 2018.05.04
C언어본색 연습문제 Part2.3.4  (0) 2018.05.04
C언어본색 연습문제 Part2.3.2  (0) 2018.05.04
C언어본색 연습문제 Part2.3.1  (0) 2018.05.04
C언어본색 연습문제 Part 2-2-5  (0) 2018.05.03