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