[問題] 用陣列方式表達指標的習慣?
開發平台(Platform): (Ex: Win10, Linux, ...)
all
問題(Question):
對於一個指標 p ,具有:
p[i] == *(p+i)
剛剛看了「混沌四神:陣列、指標、宣告、定義」 #1ERylPtG (C_and_CPP)
知道陣列 != 指標,語法上的相似是編譯器處理掉的。
(不過以前初學的時候看過書上提過用[]和*處理陣列資料的爭執,
說有人測過指標會略快一點?)
那我想請問通常對於一個 malloc 空間的操作會習慣使用[]還是 *() 呢?
會這樣問是因為感覺上 p[i] 好像比 *(p+i) 來的簡潔。
不過不知道會不會容易造成誤會,像是 p[-1] 這種用法。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.231.178.18
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1508204120.A.594.html
※ 編輯: sppmg (36.231.178.18), 10/17/2017 09:35:59
推
10/17 10:25,
6年前
, 1F
10/17 10:25, 1F
推
10/17 10:28,
6年前
, 2F
10/17 10:28, 2F
→
10/17 10:28,
6年前
, 3F
10/17 10:28, 3F
→
10/17 10:42,
6年前
, 4F
10/17 10:42, 4F
→
10/17 10:42,
6年前
, 5F
10/17 10:42, 5F
補充一下。因為最近練習自製 list ,於是出現了這種東西:
a->b->c->d[i] 比較:
*(a->b->c->d + i)
我知道這只是習慣問題,但還是想知道大家是如何用的。
像上面這種一長串的,如果是習慣用 *() 的人會改用 [] 嗎?
還是堅持一致語法而用 *() 呢?
推
10/17 11:13,
6年前
, 6F
10/17 11:13, 6F
※ 編輯: sppmg (36.231.178.18), 10/17/2017 11:24:34
→
10/17 13:15,
6年前
, 7F
10/17 13:15, 7F
推
10/17 14:01,
6年前
, 8F
10/17 14:01, 8F
推
10/17 14:27,
6年前
, 9F
10/17 14:27, 9F
→
10/17 18:20,
6年前
, 10F
10/17 18:20, 10F
→
10/17 18:22,
6年前
, 11F
10/17 18:22, 11F
→
10/17 18:23,
6年前
, 12F
10/17 18:23, 12F
→
10/17 18:24,
6年前
, 13F
10/17 18:24, 13F
推
10/17 18:28,
6年前
, 14F
10/17 18:28, 14F
推
10/17 19:24,
6年前
, 15F
10/17 19:24, 15F
看來考慮當下的可讀性比較重要。
謝謝各位的解答。
※ 編輯: sppmg (36.231.178.18), 10/18/2017 11:20:11