[C/C+]ダブルポインタ(**)


1.概念


Linux C言語でよく使われる概念は、必ず覚えておきましょう.
ポインタが変数のメモリアドレスを保存すると、
デュアルポインタは、メモリアドレスを格納するポインタのメモリアドレスを格納します.

2.コード例

#include <stdio.h>

int main()
{
    int *numPtr1;     // 단일 포인터 선언
    int **numPtr2;    // 이중 포인터 선언
    int num1 = 10;

    numPtr1 = &num1;    // num1의 메모리 주소 저장 

    numPtr2 = &numPtr1; // numPtr1의 메모리 주소 저장

    printf("%d\n", **numPtr2);    // 20: 포인터를 두 번 역참조하여 num1의 메모리 주소에 접근

    return 0;
}
上記のコードでは、次の点に注意してください.
  • num 1変数には整数変数が含まれます.
  • 整数変数を含むnum 1変数のメモリアドレスをnumprt 1ポインタに格納します.
  • numprt 1ポインタのメモリアドレスを格納します.
  • numprt 1はメモリアドレスを含むポインタであり、以降のポインタの記憶は重複ポインタとして保存される.

  • 3.参照リンク


    https://dojang.io/mod/page/view.php?id=279