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

c语言编程问题(作用域与存储类型 )

c语言编程问题(作用域与存储类型 )

C
繁星coding 2019-03-22 15:14:18
c语言编程问题(作用域与存储类型 )
查看完整描述

3 回答

?
慕工程0101907

TA贡献1887条经验 获得超5个赞

fun.c

1

2

3

4

5

6

7

extern int factorial(int n)

{

    if (n == 1 || n == 0)

        return 1;

    else 

        return n * factorial(n - 1);

}

maincontent.c

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

#include <stdio.h>

 

int factorial(int);

 

int main()

{

    int n, fact;

    printf("Please input an number:");

    scanf("%d", &n);

    if (n <= 0)

    {

        printf("n must > 0 \n");

        return 1;

    }

    printf("factorial(%d) = %d", n, factorial(n));

    return 0;

}


 


查看完整回答
反对 回复 2019-03-25
?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

局部静态(static)变量,作用域为局部,而生命周期是全程。
静态局部变量属于静态存储方式,它具有以下特点:
(1)静态局部变量在函数内定义,但不象自动变量那样,当调用时就存在,退出函数时就消失。静态局部变量始终存在着,也就是说它的生存期为整个源程序。
(2)静态局部变量的生存期虽然为整个源程序,但是其作用域仍与自动变量相同,即只能在定义该变量的函数内使用该变量。退出该函数后, 尽管该变量还继续存在,但不能使用它。

查看完整回答
反对 回复 2019-03-25
?
PIPIONE

TA贡献1829条经验 获得超9个赞

静态变量的生命周期是整个程序的生命周期。
析构函数析构的是动态申请的内存。
而类中的成员变量是在类的对象声明时创建,在对象生存期结束后截止。

查看完整回答
反对 回复 2019-03-25
  • 3 回答
  • 0 关注
  • 601 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信