int *p 和int **p的區別


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得到的是一級指針變量指向的普通變量的值


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM