形参、普通(非静态)局部变量和静态局部变量差别 | 您所在的位置:网站首页 › 静态函数与普通函数差别 › 形参、普通(非静态)局部变量和静态局部变量差别 |
形参、普通(非静态)局部变量和静态局部变量差别---求取指定整数间阶乘
原创
JohnTian_ 2022-09-08 20:25:07 博主文章分类:C++/C ©著作权 文章标签 C++ 局部变量 局部静态变量 形参 静态局部变量 非静态 文章分类 OpenStack 云计算 ©著作权归作者所有:来自51CTO博客作者JohnTian_的原创作品,请联系作者获取转载授权,否则将追究法律责任 形参、普通(非静态)局部变量和静态局部变量差别---求取指定整数间阶乘1.形参、局部变量和静态局部变量的差别。
从本质上说,三者均属于局部作用域中的变量,其中,局部变量又可以分为普通(非静态)局部变量和静态局部变量。它们的差别在于: 1) 形参的作用域为整个函数体,而普通(非静态)局部变量和静态局部变量的作用域为:从定义处到包含该变量定义的块的结束处。 2)形参由调用函数时传递的实参初始化;而普通(非静态)局部变量和静态局部变量通常用初始化式进行初始化,且均在程序执行流程第一次经过该对象的定义语句时进行初始化。静态局部变量的初始化在整个程序执行过程中进行一次。 3)形参和普通(非静态)局部变量均属自动变量,在每次调用函数时创建,并在函数结束时撤销;而静态局部变量的生命期跨越了函数的多次调用,它在创建后直到程序结束时才撤销。
2.求取指定整数间阶乘 #include using namespace std;//用于辅助求阶乘函数int fac(int x)//x为形参{ static int result = 1;//result为静态局部变量 result *=x; return result;}int main(){ int uplmt;//uplmt为普通(非静态)局部变量 cout |
CopyRight 2018-2019 实验室设备网 版权所有 |