c++ - 递归增量澄清

标签 c++

我有以下功能:

      int v[]={0,1,1,1};
      int f(int x)
      {
          if(x>=1)  return v[x]+f(x-1);
          else return 0; 
      }

当我像这样在 main 中调用它时:cout<<f(4);它正在输出“4”,但我希望是“3” 有人可以澄清为什么我得到 '4' 而不是 '3' 吗? (我想我错过了什么)

最佳答案

v[4] 未定义。它有 4 个元素,因此最大数组索引为 3。

关于c++ - 递归增量澄清,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12960888/

相关文章:

C++ 构造行为

c++ - Win32 API 防止待机

c++ - 为什么 if 语句不起作用

c++ - 在跳过对角线的 vector 上映射上三角矩阵

c++ - 为什么释放堆内存比分配它慢得多?

c++ - BOOST_LOG_TRIVIAL 与 logrotate(重新打开日志)

c++ - 编译时数据段太大

c++ - 为什么 BOOST_FOREACH 有时不能用于 C++ 字符串?

c++ - 如何使用 SSE 使用条件处理整数数组

c++ - 如何在 C++ 中导出注册表项