在互聯網上發現了一個很好的C++入門學習網站,用各種圖表和幻燈片來學習C++知識,非常直觀,一目了然,比看文字更容易理解。做個搬運工用中文分享一下C/C++最難懂的的內存指針的講解,由淺入深的將指針解釋的很清楚易懂,供初學者參考。
指針運算
1.注意:不同的類型的內存大小是不同的
2.指針僅僅是存儲了一個地址
3.指針運算:遞增1
4.指針運算:遞減1
5.指針運算
int類型的大小等于4個char類型的大小,即4個字節。
6. 下標運算符 [ ]
p[n] = 存取值(在指針中的地址+n)
7.指針圖
空指針在內存(棧內存)中的狀態。
8.指向對象的指針
這里指針變量p指向變量v,即變量p的值是變量v的內存地址。
9.指向指針的指針
這個有點繞,變量v和p參考上圖,變量pp是個指向指針的指針變量,其實還是個指針變量,只不過pp的值是p指針變量的內存地址,而p變量的值是變量v的內存地址。
& 后退一步
- 前進一步
這兩句話的意思如下:
“ & ” 操作符為取地址操作符(注意用在變量之前,且不是變量聲明定義語句,不要和引用類型符號混淆)。
“ * ” 為解引用操作符,用在指針變量上就是返回此指針變量指向變量的值,如p指向v變量,那么p則返回5。而pp由于指向的變量是p,則返回p的值0x40,**pp,先解引用一個得到p,再解引用p,即p,則返回v變量的值5。
希望文章對您有所幫助,整理不易請隨手點個贊,謝謝!附上原文地址:hackingcpp.com