【发布时间】:2022-01-08 20:40:32
【问题描述】:
我几乎是一个初学者,在学习递归时,我遇到了这段代码:
#include <stdio.h>
void reverseSentence();
int main()
{
printf("Enter a sentence: ");
reverseSentence();
return 0;
}
void reverseSentence()
{
char letter;
scanf("%c", &letter);
if( letter != '\n')
{
reverseSentence();
printf("%c",letter);
}
}
我不明白的是,不是每次调用函数时都应该更改字母变量吗?我认为它不会因此而起作用,但以某种方式颠倒了一个句子,就像它应该的那样。
【问题讨论】:
-
letter变量是在函数内部声明的(而不是static),因此它是每次调用函数的新变量。 -
@Paul Hankin 那么,计算机是否通过调用它们定义的函数来区分
letter变量?