這條語句在C語言中的含義是什麼?結構指針及其用法
其中fag
是結構,其指針是pat
。
fag *pat = &h.device[d];
d = (pat - &(h.device[0]))/(sizeof(fag)) ;
這條語句在C語言中的含義是什麼?結構指針及其用法
其中fag
是結構,其指針是pat
。
fag *pat = &h.device[d];
d = (pat - &(h.device[0]))/(sizeof(fag)) ;
fag *pat = &h.device[d];
取所述數組的第d
個元素的地址。
它可以用來緩解對它的訪問。
如果我做
d = (pat - &(h.device[0]))/(sizeof(fag));
在那裏我沒有訪問原始d
,我得到了給定項的指數,所述陣列英寸
它從「我們」指針到原始指針的差異。
如果我看到它的權利,除以sizeof fag
是錯誤的 - 差異已經在fag
大小的條款。此外,&(h.device[0])
是完全一樣h.device
,所以
d = pat - h.device;
應該是正確的事情。 (Thank you, WhozCraig.)
第二個陳述是無用的,並且可能被優化爲'd = d;'因此被刪除(假設'h.device [0]'的類型是'fag' ....) –
yes ..對..但是第一個陳述的含義是什麼?你能清楚地解釋我嗎? – Fagun