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

嵌入式牛牛疑惑的变量

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

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

相关推荐

11-09 14:54
已编辑
华南农业大学 产品经理
大拿老师:这个简历,连手机号码和照片都没打码,那为什么关键要素求职职位就不写呢? 从上往下看,都没看出自己到底是产品经理的简历,还是电子硬件的简历? 这是一个大问题,当然,更大的问题是实习经历的描述是不对的 不要只是去写实习流程,陈平,怎么去开会?怎么去讨论? 面试问的是你的产品功能点,是怎么设计的?也就是要写项目的亮点,有什么功能?这个功能有什么难处?怎么去解决的? 实习流程大家都一样,没什么优势,也没有提问点,没有提问,你就不得分 另外,你要明确你投的是什么职位,如果投的是产品职位,你的项目经历写的全都是跟产品无关的,那你的简历就没用 你的面试官必然是一个资深的产品经理,他不会去问那些计算机类的编程项目 所以这种四不像的简历,在校招是大忌
点赞 评论 收藏
分享
11-11 14:21
西京学院 C++
无敌混子大王:首先一点,不管学校层次怎么样,教育经历放在第一页靠上位置,第一页看不到教育经历,hr基本直接扔掉了
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务