Zig 中指針的區別

與 C 不同,Zig 中的指針類型有多種,主要是對指向的元素做了區分,便於更好地使用。下圖展示了它們指向元素的不同:

上圖中包含了切片(slice)類型,嚴格來說它不是指針,但其是由指針構成的(一般稱爲胖指針),而且在代碼中用的更爲普遍,因此列在一起便於讀者比較。

需要明確一點,Zig 只對指針指向的元素數量做了區分,本身並沒有記錄長度,因此不會有越界檢查,這一點和 C 指針是一樣的,需要程序員自己來約束。 一般而言,會通過ptr[start..end]的方式獲取部分元素的切片,對切片進行slice[idx]索引時就會有越界檢查。

加入我們

Zig 中文社區是一個開放的組織,我們致力於推廣 Zig 在中文羣體中的使用,有多種方式可以參與進來:

  1. 供稿,分享 [1] 自己使用 Zig 的心得

  2. 改進 ZigCC 組織下的開源項目 [2]

  3. 加入微信羣 [3]

參考資料

[1]

供稿,分享:https://ziglang.cc/contributing

[2]

開源項目:https://ask.ziglang.cc/github

[3]

微信羣:https://ask.ziglang.cc/weixin

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/SRtFJllagyK1N_4bbuxd9w