指針本身是一個很淺顯的概念,它就是代表了內存中的一個地址
通過這個地址 就能獲取這個地址上保存的數據
嗯,很簡單的道理。
但爲何寫起代碼來就感覺被漿糊團團圍住?
因爲語言發明者給剛入門的程序員搞了一個非常不友好的設定
兩個意思相近但其實很不一樣的操作符 卻用了同一個符號!
在聲明一個變量名字是什麼類型的時候
*這個符號 代表了你聲明的這個變量名字 是一個指針
當聲明完成後,這個名字就是他了!這個名字出現的地方就是他!
比如int* ptr; 這個聲明以後 ptr出現的地方 就表示你在操作一個名字叫做ptr的int指針
你可以對他賦值 讓他重新代表其他地址 ptr=xxxxxx;
你可以對他解引用,取出他地址上的內容 *ptr
注意了,這個地方*表示的是解引用操作符,它和聲明時表示指針的* 是兩種不一樣的符號
這就是坑點,同樣是* 卻是兩種操作符
所以,對&這個符號的理解也可以參照*來進行
在聲明時 &表示你聲明的名字是個引用 而不在聲明時 表示對操作的那個變量取地址
總之,注意下 兩個意思的操作符 卻用同一個符號 很狡猾!