1.解引用
int main()
{
int a = 10;
int b = 20;
printf("%d %d\n",a,b);//10 20
int *p = &a;//p裡儲存a的位址
*p = 100;//對p解引用,將p指向的位址的內容賦為100
p = &b;//p指向b
*p = 200;//將p指向的位址的內容賦為200
printf("%d %d\n",a,b);// 100 200
int **pp = &p;//二級指標pp指向p
*pp = &a;//對pp解引用一次,即,使p指向a
**pp = 1000;//對pp兩次解引用,第一次對pp解引用即p裡面儲存1000,
//第二次對p解引用即a裡面儲存1000
printf("指向a時p的內容:%d\n",*p);//1000
*pp = &b;//pp指向b
**pp = 2000;//第一次對pp解引用即p裡面儲存2000,
//第二次對p解引用即b裡面儲存2000
printf("指向b時p的內容:%d\n",*p);//2000
printf("%d %d\n",a,b);//1000 2000
int ***ppp=&pp;
**ppp=&b;//使p指向b
***ppp=20000;//對ppp解引用三次
printf("pp內容:%d p內容%d b=%d\n",**pp,*p,b);//20000 20000 2000
**ppp=&a;//使p指向b
***ppp=10000;//對ppp解引用三次
printf("pp內容:%d p內容%d a=%d\n",**pp,*p,a);//10000 10000 10000
C語言 指標pointer 與解引用
符號 的三種概念 a a b 乘法 兩邊都是變數 乘法概念 int p 識別符號 和 變數之間 申明概念 申明了乙個指標p p 100 指向概念 指標有三個值,最關係其中兩個值 p和 p p 指標p,存放的是a的位址 指向目標的位址 p p指向目標的內容 不常用 p 存放的也是位址,是指標的位址 理...
c語言 解引用
最近接觸到了乙個新的概念,叫 解引用 就是在函式傳參時,如果傳入的是指標,在函式體中未對它解引用,那麼,這個指標指向的值就不會發生改變。引用別人部落格中的概念 參考這三篇部落格,感謝他們。首先,我們來看swap的常見錯誤用法。void swap int p1,int p2 void swap err...
指標解引用
所有的變數使用到這一點,在本教程中有乙個共同點 該變數必須先宣告在編譯的時候。這導致了兩個問題 第一,很難有條件地宣告乙個變數,把它在乙個if語句塊之外 在這種情況下,它會超出範圍時,塊的結束 第二,所有陣列的大小必須決定在執行程式之前。例如,以下是不合法的 1 2 3 4 5 cout how m...