结构作为成功函数的参数。。。小错误需要修正。(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]->分数?