C语言的基础知识点总结

①关于变量存储的内存分布

C语言把保存所有变量的数据区分为动态存储区和静态存储区。动态存储区使用堆栈来管理的,适合函数动态分配与回收存储单元。而静态存储区相对固定,管理比较简单,食欲存放全局变量和静态变量。在静态存储区中,除了全局变量外,还有另外一种特殊的局部变量--静态局部变量。它存放在静态存储区,不会像普通的局部变量那样因为函数调用结束而被系统回收,它的生命周期会持续到程序结束。由于存储单元被保留,一旦含有静态局部变量的函数被再次调用,则静态局部变量会被重新激活,上一次函数调用后的值仍然保存着,可以供本次调用继续使用。
静态变量定义格式:
static 类型名 变量表 
static double f =1;

局部变量又称为自动变量。自动变量如果没有赋初值,其存储单元中将是随机值。就静态变量而言,如果定位时没有赋初值,系统自动赋0,并且赋初值只在函数第一次调用时起作用,以后调用都按前一次调用保留的值使用。这是因为静态局部变量的生存周期始于函数的第一次调用,贯穿于整个程序,当函数第一次调用时,静态局部变量的内存单元得以分配,赋以处置,而函数被再次调用时,此静态局部变量已经存在,计算机不会为它分配单元,赋初值也不再发生。但静态局部变量受变量作用范围限制,不能作用于其他函数。

静态变量(静态局部变量,静态全局变量)和全局变量都位于静态存储区,他们的共同特点是生存周期贯穿于真个程序执行过程。区别在于作用范围不同,全局变量可作用于所有的函数,静态变量只能用于所定义的函数。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. 结构体和共同体的区别。 定义: 结构体struct:把不同类型的数据组合成一个整体,自定义类型。共同体uni...
    breakfy阅读 2,181评论 0 22
  • 1、c语言的函数有以下特点: (1)才源程序由函数组成,一个主函数main()+若干其他函数 C程序中的函数类似文...
    滕王阁序阅读 1,402评论 0 6
  • 1. C++基础知识点 1.1 有符号类型和无符号类型 当我们赋给无符号类型一个超出它表示范围的值时,结果是初始值...
    Mr希灵阅读 18,046评论 3 82
  • 《文学里的动物》 目录 蛇殇 追凶 藏凶 跳崖 鬼嘶 飞蛰 奇溺 核变 牧虫 夜逃 尾说 啄磨...
    孤独一刀阅读 731评论 8 7
  • 每一个传统节日都有特定吃食,如冬至吃汤丸,中秋吃月饼,端午节吃粽子,民以食为天在节日里彰显出隆重的仪式感。 在潮汕...
    mimi播报阅读 299评论 3 6