我定义了以下结构:

typedef struct {
    double salary;
} Employee;

我想更改salary的值。我试图通过引用传递它,但值保持不变。下面是代码:
void raiseSalary (Employee* e, double newSalary) {
    Employee myEmployee = *e;
    myEmployee.salary = newSalary;
}

当我调用这个函数时,salary保持不变。我做错什么了?

最佳答案

将指针传递给原始对象,然后创建其副本:

Employee myEmployee =*e;

创建副本。
e->salary = newSalary;

会的。或者,如果您必须有辅助变量,无论出于什么原因:
Employee* myEmployee =e;
Myemployee->salary= newSalary;

这样,两个变量将指向同一个对象。

09-07 07:22