递归中的主要功能

绍拉夫·辛格

我在主函数中尝试了递归,但是为什么'i'变量没有得到更新,它只会更新到i = 1为止,然后保持不变。下面是代码:

int main(int i = 0)
{
    std::cout << "i value" << i << std::endl;
    if (i == 3)
        return 0;
    std::cout << "hello" << std::endl;
    main(i++);
}
maximum_prime_is_463035818

参见例如cppreference / main_function

主要功能具有几个特殊属性:

  1. 不能在程序中的任何地方使用

    a)特别是,它不能递归调用

    b)不能使用其地址

[...]

您不能main递归调用。另外,您的签名不正确。正确的签名是:

int main () { body }                                                (1)     
int main (int argc, char *argv[]) { body }                          (2)     
/* another implementation-defined form, with int as return type */  (3)

对于(3),您需要检查您的实现,但我不知道允许int main(int)哪个实现(尽管我没有费心检查)。

最后但并非最不重要的一点,foo(i++);将增加i,然后foo使用的原始值进行调用i您可能想要foo(++i);或宁愿foo(i + 1);

TL; DR

int my_main(int i=0) {
     // put code here
     my_main(i + 1);
}

int main() {
   my_main();
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Java

主要功能

来自分类Java

多种主要功能

来自分类Java

Java的主要功能?

来自分类Dev

OCaml的主要功能

来自分类Dev

Haskell主要功能

来自分类Dev

主要功能中的功能原型?

来自分类Dev

JUnit 5主要功能概述

来自分类Python

Python如何退出主要功能

来自分类Dev

主要功能参数的属性

来自分类Dev

Scala主要功能的默认参数?

来自分类Dev

#ifdef _DEBUG在主要功能中

来自分类Dev

Python __name __()主要功能

来自分类Dev

Elm主要功能类型注释

来自分类Dev

子进程的主要功能

来自分类Dev

不带主要功能的编译(MacOS)

来自分类Dev

如何结束我的主要功能?

来自分类Dev

异步/等待中的递归无法在主要功能中解决

来自分类Dev

从被叫/子功能退出/中断主要功能

来自分类Dev

如何从C#运行Cplex的主要功能?

来自分类Dev

如何加快“ Agent Ransack”的主要功能

来自分类Dev

如何加快“搜索所有内容”的主要功能

来自分类Dev

QTreeView在主要功能之外不起作用

来自分类Dev

Zig“翻译C”不翻译主要功能

来自分类Linux

Linux内核有主要功能吗?

来自分类Dev

在Go上具有多个主要功能

来自分类Linux

如何获得我的主要功能返回的信息?

来自分类Dev

在Qt主要功能中,QApplication如何了解Mainwindow?

来自分类Dev

在代码部分中灵活定义主要功能

来自分类Dev

货物包装:错误:未找到主要功能