我是 C 编程语言的新手,我想了解一个函数的意图,该函数接受一个指针参数,但在其上使用运算符的地址,就好像它是函数主体中的变量名一样?传递的参数是结构类型。也就是说,为什么作者选择使用 &lib -> fatfs;而不是 lib->fatfs? “地址”运算符是否用于确保不传递空指针?
void SDCardLib_init(SDCardLib * lib, SDCardLib_Interface * interface)
{
lib->interface = interface;
f_mount(0, &lib->fatfs);
disk_initCallBack(interface);
}
最佳答案
address-of 运算符未应用于指针 lib
,而是应用于指向对象的 fatfs
成员。 ->
运算符的优先级高于一元 &
运算符。
这意味着 &lib->fatfs
与 &(lib->fatfs)
相同。这应该更清楚 &
正在获取地址。
关于c - 为什么函数会在作为指针传递给它的参数上使用 "address of"运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54406874/