더블포인터

질문 제목 : 더블포인터 더블포인터
질문 내용 : 제가 열강을 보고있는데
double val=3.14;
int *p1=&val;
int **p2=&p1;이렇게 나와있거든요 그런데 포인터 p1은 val의 주소값을 가지고 있으니깐
int **p2=p1;
해야 될것같은데 왜 int **p2=&p1;게되죠??

댓글 4

  • 양자리 2026.09.07

    주소값은 포인터에 담는다.. 이게 원칙이겠죠...
    주소값을 담은 변수도 메모리에 올가면 주소를 갖게 되고
    그러면 그 주소값의 주소값은 어디에 담아야 할까요?
    당연히 포인터의 포인터를 사용하겠죠?

  • 셋삥 2026.09.07

    p1이 val 값을 가지고 있지만. 그런다고 int **p2=p1; 을 하는건 아닙니다.
    p1에 val에 주소값이 있기 떄문에 p1도 &해줘야 합니다.

  • 맨삶이 2026.09.07

    더블포인터는 싱글포인터의 포인터입니다. 가장 중요한 개념인데요.
    따라서 싱글포인터의 주소값을 저장해야 하기 때문에 &p1이 되는겁니다.

  • 유우 2026.09.07

    이름: 내용
    val : 3.14
    p1 : &val
    p2 : &p1

C언어 다른 글

목록