Dotcpp  >  编程教程  >  C语言函数  >  C语言static静态变量详解

C语言static静态变量详解

点击打开在线编译器,边学边练

有时希望函数中的局部变量的值在函数调用结束后不消失而保留原值,这时就应该指定局部变量为静态局部变量,用关键字static进行声明。


通过用static类型声明后的变量,其变量的内存空间位于内存的全局静态区,仅会初始化一次,这是一个非常重要的特性,请大家通过如下的程序理解:

#include<stdio.h>
static a=5;
int fun()
{
    a=a*2;
    printf("a=%d\n",a);
    return 0;
}
int main()
{
    int i=0;
    for(i=0;i<10;i++)
    {
        fun();
    }
	return 0;
}


请大家先自行理解,然后上机运行如上代码,可以观察a的值输出如下:

a=10
a=20
a=40
a=80
a=160
a=320
a=640
a=1280
a=2560
a=5120


这个结果的原因在于,每次a的值是接着上一次函数调用的值继续运算的,并非每次都初始化从5开始计算,这就是static的特性,请大家好好理解。



本文固定URL:https://www.dotcpp.com/course/627

C语言教程
第一章 C语言的过去与未来
第二章 C语言快速入门
第三章 C语言的数据类型
第四章 C语言中的基本输入输出
第五章 C语言运算符和表达式
第六章 C语句和程序流
第七章 C语言函数
第八章 C语言数组
第九章 C语言指针
第十章 C语言结构体和共用体
第十一章 C语言文件操作
第十二章 C语言预处理
第十三章 C语言位运算
第十四章 附录
Dotcpp在线编译      (登录可减少运行等待时间)