栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言学习记录:static存储类别说明符

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言学习记录:static存储类别说明符

static:块作用域、无链接、静态存储期。

C变量有三种链接属性:外部链接、内部链接、无链接。

外部链接变量可以在多文件程序中使用。

内部链接变量只能在一个翻译单元中使用。

“内部链接的文件作用域”简称“文件作用域”

“外部链接的文件作用域”简称“全局作用域”、“程序作用域”

例子:

int a = 1;        //文件作用域、外部链接
static int b = 2; //文件作用域、内部链接    //静态全局变量

static:使该变量只在这个源文件中可用,称之为全局静态变量,全局静态变量就是静态全局变量。

该文件和同一程序的其他文件都可以使用变量 a 。但是,变量 b 属于文件私有,该文件中任意函数都可以使用它。

静态变量:静态意指该变量在内存中原地不动,并非其值不变。

在程序离开它所在程序时,这些变量不会消失。具有静态存储期。计算机在多次函数调用之间会记录它的值。

例子:

void print_1(void);

int main(void)
{
    for(i=1 ; i<=3 ; i++)
        print_1(void);
}


void print_1(void);
{
    static a = 1;
    printf("a = %dn",a++);
}

输出:

a = 1

a = 2

a = 3

 可以看出:a 只被初始化了一次。

实际上来说,a 已经不属于print_1()了。因为静态变量和外部变量在程序被载入内存的时候已经执行完毕。这条声明在print_1()函数中只是说明只有print_1()函数才能看到该变量。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/857601.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号