【发布时间】:2019-01-28 17:00:43
【问题描述】:
我是 C 编程语言的新手,我试图理解一个函数的意图,该函数接受一个指针参数,但在其上使用运算符的地址,就好像它是函数体中的变量名一样?传递的参数是结构类型。也就是说,为什么作者选择使用 &lib -> fatfs;而不是 lib->fatfs? “地址”运算符是否用于确保不传递空指针?
void SDCardLib_init(SDCardLib * lib, SDCardLib_Interface * interface)
{
lib->interface = interface;
f_mount(0, &lib->fatfs);
disk_initCallBack(interface);
}
【问题讨论】:
-
可能是因为
lib->fatfs是一个非指针对象,而f_mount函数期望传入一个指针? -
这也可能是一种在C中模拟通过引用传递的方法?
标签: c