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/

10-11 21:46