指針入門學(xué)習(xí) -- A Beginner's guide to Pointers
A Beginner's guide to Pointers
這是我翻譯的一篇文章,主要向初學(xué)者介紹C/C++的靈魂——指針。
原作者是:Andrew Peace
What are Pointers?
指針是什么?
基本上,指針同其他變量是一樣的.只是,它們的不同之處在于:其它變量包含實(shí)際的數(shù)據(jù),而指針包含一個(gè)指示器,這個(gè)指示器指向一塊能夠找到信息的內(nèi)存區(qū)域.這是一個(gè)非常重要的概念,許多程序和思想依賴于指針把指針作為設(shè)計(jì)的基礎(chǔ),比如鏈表.
?
Getting Started
我如何定義一個(gè)指針?Well, 像定義其它變量一樣, 只是需要在它的名字前加一個(gè)星號(*).例如,下面的代碼創(chuàng)建了兩個(gè)指針, 它們都指向一個(gè)整型.
?
????int*?pNumberOne;????
????int*?pNumberTwo;?????
注意到兩個(gè)變量名前的前綴 'p'了嗎?這是一個(gè)習(xí)慣的用法, 指出一個(gè)變量是一個(gè)指針.
現(xiàn)在,讓這些指針實(shí)際地指向一些東西:
& 標(biāo)記應(yīng)當(dāng)讀作"...的地址"( 'the address of'),因?yàn)榈玫搅艘粋€(gè)變量的存儲(chǔ)區(qū)域的地址,而不是變量本身.所以,在這個(gè)例子里, pNumberOne 被設(shè)置為等于some_number的地址, pNumberOne現(xiàn)在指向some_number.???
????pNumberOne?=?&some_number;
????pNumberTwo?=?&some_other_number;?
What we've learnt so far: an example:??
???
Phew! 有許多需要注意的地方,我建議如果你沒有理解這些概念,你應(yīng)當(dāng)再讀一次. 指針是一個(gè)復(fù)雜的主題,需要花一段時(shí)間才能掌握.??
這兒是一個(gè)例子,示范上面討論的一些概念思想.它是用C語言寫的, 不是C++(C的擴(kuò)充).
?