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

嵌入式牛牛疑惑的变量

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

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

相关推荐

Hello_WordN:咱就是说,除了生命其他都是小事,希望面试官平安,希望各位平时也多注意安全
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务