编辑代码

#include <stdio.h>

int main () {
    
    int a = 100;
    printf("%p\n", &a);
    printf("%d\n\n", a);


    int* p1 = &a;
    printf("%p\n", &p1); // 自身地址
    printf("%p\n", p1); // 引用地址
    printf("%d\n\n", *p1); // 引用地址值

    int** p2 = &p1;
    printf("%p\n", &p2); // 地址
    printf("%p\n", p2); // 值地址
    printf("%p\n", *p2); // 一级解引用
    printf("%d\n\n", **p2); // 二级解引用

    // int*** p3 = &p2;
    // printf("%p\n", &p3); // 自身地址
    // printf("%p\n", p3); // 自身地址
    // printf("%p\n", *p3); // 自身地址
    // printf("%p\n", **p3); // 自身地址
    // printf("%d\n", ***p3); // 自身地址


	return 0;
}