首页 > 解决方案 > 将取消引用的指针作为函数参数传递给结构

问题描述

如果一个函数内部的指向结构的指针被取消引用并作为参数传递给另一个函数,如何访问该函数内部的结构成员?

例如,一个指向结构的指针被传递给这样的函数:

main_logic_tick(&settings);

main_logic_tick函数内部,指针被取消引用并作为参数传递给另一个函数(即tick()):

void main_logic_tick(Settings* settings)
{
    //...
    state_machine.tick(*settings);
}

如何Settings通过settings上面的 tick()-function 中的 -variable 访问结构的成员?是按值调用还是按引用调用?最后,tick() 函数的函数原型应该是什么样子的?

标签: c++pointersstruct

解决方案


如何通过上面的 tick() 函数中的设置变量访问结构设置的成员?是按值调用还是按引用调用?最后,tick() 函数的函数原型应该是什么样子的?

tick()Settings可以按值或按引用接受对象。听起来您希望它通过引用接受其参数——您希望能够修改对象并使修改在上游的两个函数中可见。为此,您将使用:

void tick(Settings& settings);

在里面tick,您将使用通常的语法来访问引用的成员——使用点 ( .) 运算符。

settings.member = new_value;

推荐阅读