这句话在C中的含义是什么?
其中fag
是结构,其指针是pat
。
fag *pat = &h.device[d];
d = (pat - &(h.device[0]))/(sizeof(fag)) ;
答案 0 :(得分:4)
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.)
答案 1 :(得分:0)
结构指针的一种可能用途可能是,如果要更改函数中结构的成员,则必须传递结构的地址。