题解 | #嵌入式牛牛疑惑的变量#

嵌入式牛牛疑惑的变量

https://www.nowcoder.com/practice/83bce57ac2ba4f728cf091e1f35a7347

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param n int整型 
 * @return int整型
 */
 //考点static用法 和递归实现
int recursion(int n ) {
    static int m = 0;
    m = m+n;
    n--;
    if(n)
        recursion(n);
    return m;
}

总结一下static关键字用法

它可以修饰变量和函数,控制其生命周期和作用域

1、局部静态变量(local static variable)

当static用于修饰局部变量时,变量的生命周期被延长为整个程序的执行期间,而不是仅仅在函数调用期间。

局部静态变量只在第一次初始化时执行初始化表达式,之后每次调用该函数时,变量都会保留之前的值。

不会在每次调用函数时重新初始化变量。

2、全局静态变量(global static variable)

当static用于修饰全局变量时,变量的作用域被限制在定义它的源文件内部。

其他源文件中的代码无法直接访问该变量,起到隐藏全局变量的作用。

3.静态函数(static function)

static 关键字也可以用来修饰函数。

当static用于修饰函数时,该函数的作用域仅限于定义它的源文件,这种做法通常用于隐藏模块的内部实现,防止命名冲突。

  • 局部静态变量:生命周期为整个程序,初始化只执行一次,作用域在函数内。
  • 全局静态变量:生命周期为整个程序,作用域为声明它的文件内,无法被其他文件访问。
  • 静态函数:作用域限制在生命他的文件内,不能被其他文件调用。
全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 18:19
个个985的硕士闭着眼睛都有15k以上的月薪,天天嚷嚷着研究生白度读了,天天嚷嚷着反向读研了........
MMMJC:不读研22本科出去的基本都拿28k呢,你不能用25的研究生和25的本科生比然后说没反向读研,而是25研和22本比呀
点赞 评论 收藏
分享
05-12 17:00
门头沟学院 Java
king122:你的项目描述至少要分点呀,要实习的话,你的描述可以使用什么技术,实现了什么难点,达成了哪些数字指标,这个数字指标尽量是真实的,这样面试应该会多很多,就这样自己包装一下,包装不好可以找我,我有几个大厂最近做过的实习项目也可以包装一下
点赞 评论 收藏
分享
机械打工仔:第一位颇有孟德之志
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务