问答详情
源自:5-9 递归函数练习

关于定义int age;

http://img.mukewang.com/56690fde000125fc06110603.jpg

为什么int age;要放在外面  不能放在花括号里面呢?也就是

#include <stdio.h>

int people(int n)

{

int age

if(n==1)

……}

下面的就省略了  主要是想知道int age;这个问题

提问者:super珊__ 2015-12-10 13:41

个回答

  • super珊__
    2015-12-12 13:14:32

    566bad0c0001550f05000280.jpg

    566bad0c0001649805000309.jpg

    可以解释一下吗



  • RockenRoll
    2015-12-10 14:16:18

    在这道题当中放外面和你写的那样都是可以的,如果你还有一个类似people这样的函数的时候就有区别了,

    放外面另一个方法也能用age这个变量,放里面就不行,这就是全局变量和局部变量的问题,你可以去看看相关

    知识

  • Jason333
    2015-12-10 14:10:28

    放外面是全局变量, 只会定义一次,

    放里面是局部变量,每调用一次people方法都会初始化, 

    然而这里放里面和外面都一样吧, 因为age改变了也不会影响递归,应该只是会浪费内存吧