Lei*_*sen 1 c pointers indirection
我最近出现了这行代码:
CustomData_em_free_block(&em->vdata, &eve->data);
Run Code Online (Sandbox Code Playgroud)
我想,不是:
a->b
Run Code Online (Sandbox Code Playgroud)
只是语法糖:
(*a).b
Run Code Online (Sandbox Code Playgroud)
考虑到这一点,这条线可以重写为:
CustomData_em_free_block(&(*em).vdata, &(*eve).data);
Run Code Online (Sandbox Code Playgroud)
如果是这样的话,传递的重点是什么
&(*a),作为参数,而不只是一个?似乎指针等效于 - ( - a)正在传入,是否有任何逻辑?
谢谢.
这个:
&(*em).vdata
Run Code Online (Sandbox Code Playgroud)
与此不一样:
em.vdata
Run Code Online (Sandbox Code Playgroud)
它与此相同:
&((*em).vdata)
Run Code Online (Sandbox Code Playgroud)
&符号获取地址vdata,该地址是指向的结构的成员em.该.经营者具有比更高的优先级&运营商.