形参、普通(非静态)局部变量和静态局部变量差别---求取指定整数间阶乘

来源:互联网 发布:巨人网络策划笔试题 编辑:程序博客网 时间:2024/04/30 10:49

形参、普通(非静态)局部变量和静态局部变量差别---求取指定整数间阶乘

1.形参、局部变量和静态局部变量的差别。

从本质上说,三者均属于局部作用域中的变量,其中,局部变量又可以分为普通(非静态)局部变量和静态局部变量。它们的差别在于:
1) 形参的作用域为整个函数体,而普通(非静态)局部变量和静态局部变量的作用域为:从定义处到包含该变量定义的块的结束处。
2)形参由调用函数时传递的实参初始化;而普通(非静态)局部变量和静态局部变量通常用初始化式进行初始化,且均在程序执行流程第一次经过该对象的定义语句时进行初始化。静态局部变量的初始化在整个程序执行过程中进行一次。
3)形参和普通(非静态)局部变量均属自动变量,在每次调用函数时创建,并在函数结束时撤销;而静态局部变量的生命期跨越了函数的多次调用,它在创建后直到程序结束时才撤销。

2.求取指定整数间阶乘

#include <iostream>using namespace std;//用于辅助求阶乘函数int fac(int x)//x为形参{static int result = 1;//result为静态局部变量result *=x;return result;}int main(){int uplmt;//uplmt为普通(非静态)局部变量cout<<"Enter value of upper limit: "<<endl;cin>>uplmt;//依次输出1~uplmt之间所有整数的阶乘for (int i=1;i<=uplmt;++i){cout<<i<<"! = "<<fac(i)<<endl;}return 0;}





原创粉丝点击