首頁 > 軟體

C語言修煉之路初識指標陰陽竅 地址還歸大道真下篇

2022-02-26 19:01:23

(壹)  行經旅途遇猛虎 -- “野指標”

概念:野指標就是指標指向的位置是不可知的(隨機的、不正確的、沒有明確限制的)指標變數在定義時如果未初始化,其值是隨機的,指標變數的值是別的變數的地址,意味著指標指向了一個地址是不確定的變數,此時去解除參照就是去存取了一個不確定的地址,所以結果是不可知的.

1.1 野指標成因

1.指標未初始化

2.指標越界存取

3. 指標指向的空間釋放

這部分的內容將會在動態記憶體開闢的時候講解,這裡可以簡單提示一下。

1.2 巧法規避野指標

  • 指標初始化 (不知指向哪裡時,應該初始化為NULL)
  • 小心指標越界
  • 指標指向空間釋放即使置NULL     
  • 指標使用之前檢查有效性   

(貳)  指標之運算

2.1 指標 +- 整數

2.2 指標-指標

判斷一下下面的程式碼結果是什麼? 

 最後得到的是兩個指標間元素的個數 

課堂小補充  (利用指標 - 指標 實現 strlen)

(叄)  指標和陣列

3.1 陣列名

陣列名是什麼?我們看一個例子

可見陣列名和陣列首元素的地址是一樣的。

結論:陣列名錶示的是陣列首元素的地址。

那麼這樣寫程式碼是可行的:

既然可以把陣列名當成地址存放到一個指標中,我們使用指標來存取一個就成為可能。

例如: 

所以p+i其實計算的是陣列arr下標為i的地址。

那我們就可以直接通過指標來存取陣列。

如下:

3.2 二級指標

指標變數也是變數,是變數就有地址,那指標變數的地址存放在哪裡? 這就是二級指標。 

3.3 指標陣列

指標陣列是指標還是陣列?

答案:是陣列。是存放指標的陣列。

陣列我們已經知道整形陣列,字元陣列。

 那指標陣列是怎樣的?

到此這篇關於C語言修煉之路初識指標陰陽竅 地址還歸大道真下篇的文章就介紹到這了,更多相關C語言 指標內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com