2018-5-21 局部变量全局变量,静态变量,静态函数

时间:2022-10-25 15:28:03

/*首先说个最让我震惊的:main里的变量竟然也是局部变量,我的天啊,我可能真读了一个假书。一直都觉得它是全局变量,我可能学了假c语言*/

要搞清全局变量和局部变量的区别,全局变量是程序的各个函数都可以调用的,而局部变量只在函数内部有效.


静态局部变量(static) 静态局部变量定义时前面加static关键字。

总结:

1、静态局部变量和普通局部变量不同。静态局部变量也是定义在函数内部的,静态局部变量定义时前面要加static关键字来标识,静态局部变量所在的函数在多调用多次时,只有第一次才经历变量定义和初始化,以后多次在调用时不再定义和初始化,而是维持之前上一次调用时执行后这个变量的值。本次接着来使用。

2、静态局部变量在第一次函数被调用时创造并初始化,但在函数退出时它不死亡,而是保持其值等待函数下一次被调用。下次调用时不再重新创造和初始化该变量,而是直接用上一次留下的值为基础来进行操作。

3、静态局部变量的这种特性,和全局变量非常类似。它们的相同点是都创造和初始化一次,以后调用时值保持上次的不变。不同点在于作用域不同

载自这个小姐姐样子的人类:小姐姐博客

我也写代码测试了一下:

#include<stdio.h>
int main()
{
    fo();
    fo1();
    fo();
    fo1();
}
void fo()
{
    static i=1;
    i++;
    printf("fo:%d\n",i);
}
void fo1()
{
    int i=1;
    i++;
    printf("fo1:%d\n",i);
}
/*
输出:fo:2
     fo1:2
     fo:3
     fo1:2

*/

剩下的大家自己去看那个小姐姐博客吧,写得挺正常挺好样子。

还有markdown里插入多行代码 是

```

代码段

```

溜。