首页 > 试题广场 >

递归函数中的形参是()

[单选题]

递归函数中的形参是()

  • 自动变量
  • 外部变量
  • 静态变量
  • 可根据需要自定义存储类型
选A。
首先要理解的是递归是借助栈来实现的,自动变量是存储在栈里面的,随着递归的进行,自动创建和销毁
外部变量和静态变量存放在静态存储区。外部变量和静态变量是不能作为递归函数的参数的。那么有同学会问了,为什么呢?首先,如果可以,那还要这个参数干什么呢?直接函数内改变不就行了?其次,递归的过程中,会创建变量存放在栈顶,如果是静态变量,递归结束后是不会被销毁的,如果忘记了,那就会造成空间很大的浪费。想想是不是不合理呢?编译器会禁止这么用的。
最后,自动变量可以大体上等价于局部变量。但也不完全相同,是C++11的新特性,很好很强大。深入了解的话,建议专门看一下。
    有问题的话,欢迎指出,共同学习进步!

发表于 2017-03-20 20:56:37 回复(4)
存储类型:auto ; static ; register ; extern ;

发表于 2017-03-08 11:51:38 回复(0)
自动变量不加说明就是局部变量。如果想要说明就用auto说明符(c++11),可以根据初始值来推断变量类型。auto修饰的变量,必须有初始值。
发表于 2017-03-25 22:58:53 回复(0)
自动变量放入栈,全局变量(外部变量)和静态变量放在DATA区。
发表于 2017-02-10 16:56:21 回复(0)
D为什么不对?
发表于 2019-12-09 14:20:03 回复(0)
自动变量是什么意思
发表于 2016-12-25 14:20:18 回复(2)
自动变量去栈区,全局变量和静态变量入DATA区
编辑于 2019-09-11 09:11:36 回复(0)
看了半天 ,没有局部变量可选 根据其他人说的 自动变量可以大体等于局部变量 在递归中,那么可以选自动变量,自动变量在栈中。
发表于 2018-10-07 10:33:26 回复(0)
递归条件是提前预设的 而递归本身由系统自动完成 所以变量是由提前预设的 所以自动增加或减少
发表于 2017-01-12 08:58:45 回复(0)