结构作为成功函数的参数。。。小错误需要修正。(C)

结构作为成功函数的参数。。。小错误需要修正。(C),c,pointers,struct,C,Pointers,Struct,所以我得到了: typedef struct { int score; char init; } Student; int changestuff(Student *students) { students->score = 100; students++; students->score = 200; changestuffagain(students); } int changestuffagain(Student *

所以我得到了:

typedef struct {
    int score;
    char init;
} Student;

int changestuff(Student *students) {

    students->score = 100;

    students++;

    students->score = 200;

    changestuffagain(students);

}

int changestuffagain(Student *students) {

     students->score = 100;

    students++;

    students->score = 200;
}

int main() {

    Student students[2];

    changestuff(students);


}
我调用函数changestuff,它正确地修改了游戏者[0]和游戏者[1]的socre,但我的小问题是,当我再次调用第二个函数changestuff时,参数没有传递游戏者[0]和游戏者[1],它只传递游戏者[1](再次调用changestuff时游戏者的值)


我怎样才能解决这个问题呢?

好吧,这就是你让它做的。当您的
changestuff
函数再次调用
changestuff
时,您增加了
Student
的值,因此它现在指向数组中的第二个
Student
。如果要将指针保持在同一位置,则应传递非递增值。

好的,这就是您告诉它要做的。当您的
changestuff
函数再次调用
changestuff
时,您增加了
Student
的值,因此它现在指向数组中的第二个
Student
。如果要将指针保持在同一位置,则应传递非递增值。

好的,这就是您告诉它要做的。当您的
changestuff
函数再次调用
changestuff
时,您增加了
Student
的值,因此它现在指向数组中的第二个
Student
。如果要将指针保持在同一位置,则应传递非递增值。

好的,这就是您告诉它要做的。当您的
changestuff
函数再次调用
changestuff
时,您增加了
Student
的值,因此它现在指向数组中的第二个
Student
。如果要将指针保持在同一位置,则应传递非递增值。

当调用
students++
时,您将跳转到下一个内存位置,在该位置分配了
Student
(在您的情况下为
students[1]
)。在调用
changestuffreach()
之前,可以减小
students

例如:

students--;
changestuffagain(students);

当你调用
students++
时,你跳转到下一个内存位置,在那里它被分配了一个
Student
(在你的例子中是
students[1]
)。在调用
changestuffreach()
之前,可以减小
students

例如:

students--;
changestuffagain(students);

当你调用
students++
时,你跳转到下一个内存位置,在那里它被分配了一个
Student
(在你的例子中是
students[1]
)。在调用
changestuffreach()
之前,可以减小
students

例如:

students--;
changestuffagain(students);

当你调用
students++
时,你跳转到下一个内存位置,在那里它被分配了一个
Student
(在你的例子中是
students[1]
)。在调用
changestuffreach()
之前,可以减小
students

例如:

students--;
changestuffagain(students);

因此,唯一的方法是在调用第二个函数之前减小它?@user3027143只需在changestuff等中使用
students[0]
stunders[1]
,而不是增加指针。这太好了,如果我明确使用位置,我应该使用玩家[0]。得分或玩家[0]->分数?所以唯一的方法是在调用第二个函数之前降低它?@user3027143只需在changestuff等中使用
students[0]
students[1]
,而不是增加指针。好主意,如果我明确使用位置,我应该使用玩家[0]。分数或玩家[0]->分数?所以唯一的方法是在调用第二个函数之前降低它?@user3027143只需在changestuff等中使用
students[0]
students[1]
,而不是增加指针。好主意,如果我明确使用位置,我应该使用玩家[0]。分数或玩家[0]->分数?所以唯一的方法是在调用第二个函数之前降低它?@user3027143只需在changestuff等中使用
students[0]
students[1]
,而不是增加指针。好主意,如果我明确使用位置,我应该使用players[0]。分数还是players[0]->分数?