이중 포인터

Study/C 2014. 8. 27. 15:22

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
 
int main()
{
    double num = 3.14;
    double *ptr= &num;
    double **dptr=&ptr;
    double *ptr2;
    printf("%9p %9p \n", ptr, *dptr);
    printf("%9g %9g \n", num, **dptr);
    ptr2=*dptr;
    *ptr2=10.99;
    printf("%9g %9g \n", num, **dptr);
    return 0;
}




첫번쨰 printf 에서 ptr과 dptr의 숫자를 출력하고 싶다면 %9p %9p에서 p는 주소를 나타내는


수식어 이므로 g로 변경 한 후에 *ptr, **dptr 으로하면 숫자가 출력된다.


Ex) printf("%9g %9g \n", *ptr, **dptr);

      위와 같다.


또한 두번째 printf 의 아랫줄에 ptr2=*dptr; 이있다.

여기서 ptr2에  주소의 값을 저장하는게 아니라 주소를 저장해

num의 주소를 공유하도록 함이다. (주소의 데이터 값만 저장할수는 없는듯)


틀린 예문

*ptr=*dptr         에러

ptr= **dptr        에러


'Study > C' 카테고리의 다른 글

함수포인터  (1) 2014.08.27
이중 포인터 예문  (0) 2014.08.27
2차원 배열 (데이터 입력하기)  (0) 2014.08.27
포인터 (3) call by reference  (0) 2014.08.27
포인터 (2) 배열  (0) 2014.08.27
Posted by 차희빈

차희빈

달력