这条语句在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