Zig 中指針的區別
與 C 不同,Zig 中的指針類型有多種,主要是對指向的元素做了區分,便於更好地使用。下圖展示了它們指向元素的不同:
上圖中包含了切片(slice)類型,嚴格來說它不是指針,但其是由指針構成的(一般稱爲胖指針),而且在代碼中用的更爲普遍,因此列在一起便於讀者比較。
需要明確一點,Zig 只對指針指向的元素數量做了區分,本身並沒有記錄長度,因此不會有越界檢查,這一點和 C 指針是一樣的,需要程序員自己來約束。 一般而言,會通過ptr[start..end]
的方式獲取部分元素的切片,對切片進行slice[idx]
索引時就會有越界檢查。
加入我們
Zig 中文社區是一個開放的組織,我們致力於推廣 Zig 在中文羣體中的使用,有多種方式可以參與進來:
-
供稿,分享 [1] 自己使用 Zig 的心得
-
改進 ZigCC 組織下的開源項目 [2]
-
加入微信羣 [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