转载:https://blog.csdn.net/guotianqing/article/details/79828100

C语言&C++

 

1、局部变量

如果在一个函数内部定义了一个静态变量,只给它赋值一次,如果它没有初始值,默认初始值为0,第二次调用函数的时候就不在定义它(即只定义一次)。

静态局部变量的作用范围是函数的作用域内。

eg:

#include<stdio.h>
void f()
{
    static int num=1;
    printf("%d ",num++);
}
int main(void)
{
    int i,n=3;
    while(n--)
    {
        f();
    }
    return 0;
}

View Code

运行结果:1 2 3 

 

2、全局变量

如果定义在函数外面作为全局变量,编译器会对它初始化,

这个变量仅对当前文件可见,其他文件不可访问,但其他文件可以定义与它相同名称的变量(作用:避免冲突)

 

3、函数

(1)静态函数只在声明它的文件中可用,其他文件不可用

(2)不同的文件可以定义相同的静态文件名称,互相不影响。

 

面向对象:

1、静态数据成员:

(1)是全局变量,不能再类定义时声明

(2)静态数据成员是类的成员,对所有类的成员都可见

(3)遵从public,private,protect的规则

(4)访问方式:<类对象名>.<静态数据成员名> 或 <类类型名>::<静态数据成员名>

 

2、静态成员函数

(1)属于整个类,不属于某一个成员函数

(2)没有this指针,无法访问非静态成员函数

(3)出现在类外的成员函数不能用static

(4)非静态成员函数可以随意的访问所有静态成员函数。

 

版权声明:本文为2018zxy原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/2018zxy/p/10075507.html