为了账号安全,请及时绑定邮箱和手机立即绑定

关于定义int age;

http://img1.sycdn.imooc.com//56690fde000125fc06110603.jpg

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

#include <stdio.h>

int people(int n)

{

int age

if(n==1)

……}

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

正在回答

3 回答

566bad0c0001550f05000280.jpg

566bad0c0001649805000309.jpg

可以解释一下吗



0 回复 有任何疑惑可以回复我~

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

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

知识

0 回复 有任何疑惑可以回复我~

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

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

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

0 回复 有任何疑惑可以回复我~
#1

super珊__ 提问者

可是我把它放在里面的话 这道题就运行不出来了
2015-12-12 回复 有任何疑惑可以回复我~
#2

Jason333 回复 super珊__ 提问者

没仔细看主函数,因为你主函数里也用到了age,而如果把age放到里面的话,他的作用域就是people这个函数,只是局部作用,而放到外面就是全局函数,他的作用域是整个类,所以main函数也不需要定义也能使用
2015-12-14 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

关于定义int age;

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信