我想计算一下函数移动中有多少移动。如果可能的话,我想使用它的指针,这样我就可以了解更多信息。
我已经使用全局变量做了一个计数器,但是现在我想使用指针,但是我尝试的所有方法都失败了。
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;
}
答案 0 :(得分:2)
如果我对您的理解正确,那么您想更改参数列表中给定的变量。您可以通过使用指针来实现。例如:
void move(int *pa)
{
(*pa)++; // increase the counter by one
if (*pa < 5) move(pa);
}
void main(void)
{
int a = 0;
move(&a);
}