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 |