我想数一数函数移动中有多少个移动。如果有可能的话,我想使用指针,这样我可以了解更多。
我用全局计数器做了一个计数器,但现在我想用指针,但我尝试的一切都失败了。
void move(unsigned int moves, char source, char spare, char dest)
{
if (moves == 0) {
/* no move: nothing to do */
}
else {
move(moves - 1, source, dest, spare);
printf("Move disk %d from pole %c to pole %c.\n", moves, source,
dest);
move(moves - 1, spare, source, dest);
}
}
int main()
{
char source = 'A';
char spare = 'B';
char dest = 'C';
int moves = size();
move(moves, source, spare, dest);
return 0;
}
最佳答案
如果我理解正确,您需要更改参数列表中给定的变量。你可以用指针来做。例如:
void move(int *pa)
{
(*pa)++; // increase the counter by one
if (*pa < 5) move(pa);
}
void main(void)
{
int a = 0;
move(&a);
}
关于c - 在使用指针的递归函数中创建计数器?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54110314/