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= # 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 |