calc(mesh, prob_data, &cells_fd[crr], species, cr);
我正在查看代码中的函数调用,我只是想验证一下我是否看起来正确。在上面的调用中,我对参数cells_fd [crr]感兴趣。
参数前面的“&”是否表示将cells_fd [crr]传递到函数calc中,而无论calc如何执行,都将被存储回cells_fd [crr]内部?
最佳答案
cells_fd[crr]
等效于*(cells_fd + crr)
,因此&cells_fd[crr]
等效于&*(cells_fd + crr)
,即(cells_fd + crr)
,因为取消引用和地址运算符被抵消了。
因此,您的解释是正确的,因为&cells_fd[crr]
传递了cells_fd[crr]
的地址,因此calc()
可能会覆盖内容,但是calc()
实际使用该地址所做的操作在单行代码中并不清楚上下文。
关于c - 在C中使用&在参数前调用函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35138680/