指標做形參

來源:互聯網
上載者:User

 

一級指標和二級指標在做形參時的不同:指標用作形參,改變指標地址則值不能傳回,改變指標內容而地址不變則值可以傳回。 (特殊情況:改變指標地址採用傳回值也可以傳回地址)對於一級指標,做形參時傳入地址,如果函數只改變該指標內容,OK,該指標可以正常返回, 如果函數改變了指標地址,除非返回該指標,否則該指標不能正常返回,函數內對指標的操作將無效。對於二級指標,做形參時傳入地址(注意此時傳入的是二級指標的地址),如果改變該二級指標地址(**p), 對該指標的操作也將無效,但是改變二級指標的內容(例如*p),則該二級指標可以正常返回。 總之,指標使用最關鍵的是弄清地址和內容,指標做形參時只有改變其內容時才能正常返回。   
void fun(int *q){int b = 100;q = &b;}void fun(int *q){int b = 100;*q = b;}void fun(int **q){int b = 100;*q = &b;}void fun(int **q){int b = 100;**q = b;}void fun(int **q){int *b = new int;*b = 100;q = &b;delete b;}

小測驗,看看哪些會改變 q的值。

int x = 10;fun(x);//fun(&x);printf("%d\n",x);

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.