关于定义int age;

来源:5-9 递归函数练习

super珊__

2015-12-10 13:41

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

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

#include <stdio.h>

int people(int n)

{

int age

if(n==1)

……}

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

写回答 关注

3回答

  • 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改变了也不会影响递归,应该只是会浪费内存吧

    Jason3... 回复super珊...

    没仔细看主函数,因为你主函数里也用到了age,而如果把age放到里面的话,他的作用域就是people这个函数,只是局部作用,而放到外面就是全局函数,他的作用域是整个类,所以main函数也不需要定义也能使用

    2015-12-14 08:45:10

    共 2 条回复 >

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926021 学习 · 20793 问题

查看课程

相似问题