int *p:一級指針,表示p所指向的地址里面存放的是一個int類型的值
int **p:二級指針,表示p所指向的地址里面存放的是一個指向int類型的指針(即p指向的地址里面存放的是一個指向int的 一級指針)
例如:
int i = 10;//定義了一個整形變量
int *p = &i;//定義了一個指針指向這個變量
一級指針中各個參量含義的講解
int a = 5; // 聲明變量a=5 int* pt = &a; // 將a的地址存儲到指針pt上 std::cout << pt << endl; // 輸出a的地址 std::cout << *pt; // 輸出a的值
其中&pt代表的是指針的地址
int **p1 = &p;//定義了一個二級指針指向p指針
那么取出10的值的方式為:
pritnf("i = [%d]\n",*p);
printf("i = [%d]\n",**p1);
從這個例子中我們可以看到,*p指向的地址是值10所在的地址,**p1所指向的地址是*p所在的地址。
取值的時候,就是*p里面存放的值是10
*p1代表的是*p的地址。**p1代表的是*p地址里面的值。
https://zhidao.baidu.com/question/418928979.html
p1:指針變量名
*p1:訪問p1指向的變量
p2:二級指針變量【指向一級指針,保存的是一級指針變量的內存地址】
*p2:獲取一級指針的值【即一級指針指向的變量的內存地址】
**p2:獲取一級指針指向的變量的值
輸出p2得到的是一級指針變量的地址
輸出*p2得到的是一級指針變量指向的普通變量的地址
輸出**p2得到的是一級指針變量指向的普通變量的值