爲什麼c++的指針那麼難學?

指針本身是一個很淺顯的概念,它就是代表了內存中的一個地址

通過這個地址 就能獲取這個地址上保存的數據

嗯,很簡單的道理。

但爲何寫起代碼來就感覺被漿糊團團圍住?

因爲語言發明者給剛入門的程序員搞了一個非常不友好的設定

兩個意思相近但其實很不一樣的操作符 卻用了同一個符號!

在聲明一個變量名字是什麼類型的時候

*這個符號 代表了你聲明的這個變量名字 是一個指針

當聲明完成後,這個名字就是他了!這個名字出現的地方就是他!

比如int* ptr;  這個聲明以後 ptr出現的地方 就表示你在操作一個名字叫做ptr的int指針

你可以對他賦值 讓他重新代表其他地址 ptr=xxxxxx;

你可以對他解引用,取出他地址上的內容  *ptr

注意了,這個地方*表示的是解引用操作符,它和聲明時表示指針的* 是兩種不一樣的符號

這就是坑點,同樣是*  卻是兩種操作符

所以,對&這個符號的理解也可以參照*來進行

在聲明時 &表示你聲明的名字是個引用  而不在聲明時 表示對操作的那個變量取地址

總之,注意下 兩個意思的操作符 卻用同一個符號  很狡猾!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章