char* stringReturn()
{
char a[] = "Array of characters";
//return a; // I know stack allocation should not be returned
char *b = "Pointer to a string";
return b; // Is it safe ?
}
int main() {
char *str = stringReturn ();
cout<< str;
return 0; }
Run Code Online (Sandbox Code Playgroud)
这是安全的,然后将数据"指向字符串的指针"存储在存储器中.
当我在循环中调用递归函数时,我遇到了两个问题.请考虑以下示例代码:
int fact(int x)
{
if(x == 1)
return 1;
return x*fact(x-1);
}
int main() {
int n = 2;
for(int i = 0; i < n; i++);
std::cout << fact(4) << std::endl; // 24 ??
return 0;
}
Run Code Online (Sandbox Code Playgroud)
问题1:我对这个程序的预期结果是24 24
(两次24
是打印机),但实际结果我只有一个24
.
问题2:main()
重复调用函数的原因是什么,即使我不是递归调用main函数.
如果有人告诉我如何在循环内调用递归函数获取多个输出,我会很高兴.
问:考虑一个示例文件.txt:
世界你好你好你好你好世界
如何找到句子“Hello World”并将其替换为“Hai Universe”
世界海宇宙你好地狱你好海宇宙
我想在文件夹内的所有匹配文件中递归更改。
提前谢谢。